'Android/입/출력'에 해당되는 글 2

  1. 2014.03.21 기본적인 JSONObject, JSONArray 사용법 (3)
  2. 2014.01.14 SharedPreferences 사용법을 알아보자. (1)

펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO


JSONObjectJSON형태의 데이터를 관리해 주는 메서드이다.

주의점은 맵의 특성으로 인해 순서를 보장하지 않는다는것. 즉 똑같이 뽑아내도 내용물의 순서가 섞일 수 있다.



간단한 사용법은 다음과 같다.


먼저 제이슨 생성 후 데이터 집어넣기


JSONObject obj = new JSONObject();

obj.put("이름","덩치");

obj.put("거주지","서울");


출력해보면


String data = obj.toString();

System.out.println(data);


결과값 - {"이름":"덩치","거주지":"서울"} 

이렇게 표시된다.


키값에 해당하는 벨류만 뽑고싶다면

String data = obj.get("key");

하면 "key"에 해당하는 벨류를 반환한다.



JSON형태의 StringJSONobject에 넣는법은


String data = {"이름":"덩치","거주지":"서울"};

(실제로는 자바에서는 "를 못읽기때문에  String data = "{\"이름\":\"덩치\",\"거주지\":\"서울\"}";  이런식으로 해줘야 될것임)

JSONObject obj = new JSONObject(data);

쓸때는 위와 같이 뽑아서 사용하면 된다.



JSONArray 는 JSONObject가 들어가는 배열이라고 보면 된다.


예제를 먼저 보자

- 예제출처 : (http://aroundck.tistory.com/215)


String Json = "[{\"Product\" : \"Mouse\", \"Maker\":\"Samsung\", \"Price\":23000},"
               + "{\"Product\" : \"KeyBoard\", \"Maker\":\"LG\", \"Price\":12000},"
               + "{\"Product\":\"HDD\", \"Maker\":\"Western Digital\", \"Price\":156000}]";
try{
   String result = "";
   JSONArray ja = new JSONArray(Json);
   for (int i = 0; i < ja.length(); i++){
      JSONObject order = ja.getJSONObject(i);
      result += "product: " + order.getString("Product") + ", maker: " + order.getString("Maker") +
                  ", price: " + order.getInt("Price") + "\n";
   }
}
catch (JSONException e){ ;}


결과값 :   result : product: Mouse, maker: Samsung, price: 23000
product: KeyBoard, maker: LG, price: 12000
product: HDD, maker: Western Digital, price: 156000

이렇게 만들어진 JSONArray 객체를 JSONObject에 넣을 수 있으며

위와같은 방식으로 제이슨오브젝트에 그냥 오브젝트와 어레이를 모두 넣어가며
작업할 수 있다.






'Android > 입/출력' 카테고리의 다른 글

기본적인 JSONObject, JSONArray 사용법  (3) 2014.03.21
SharedPreferences 사용법을 알아보자.  (1) 2014.01.14

댓글을 달아 주세요

  1.  댓글주소  수정/삭제  댓글쓰기 2016.08.05 03:32

    비밀댓글입니다

  2.  댓글주소  수정/삭제  댓글쓰기 ming 2016.09.30 11:33

    잘읽어 보았습니다.
    좋은 정보 감사합니다.

    궁굼한점이 하나있는데요,
    JSON 데이터가 {"friday":[{key:value,key1:value1}, {key:value,key1:value1}],
    [{key:value,key1:value1}, {key:value,key1:value1}]}
    이런식으로 온다 가정했을때, JSONArray 에 들어갈수있나요?

  3.  댓글주소  수정/삭제  댓글쓰기 ㅇㅇㅇㅇ 2018.08.11 13:57

    try{
    String result = "";
    JSONArray ja = new JSONArray(Json);
    for (int i = 0; i < ja.length(); i++){
    JSONObject order = ja.getJSONObject(i);
    result += "product: " + order.getString("Product") + ", maker: " + order.getString("Maker") +
    ", price: " + order.getInt("Price") + "\n";
    }
    }
    catch (JSONException e){ ;}

    예제 에러나고 실행되지 않습니다....

펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO

안드로이드에서 데이터 관리를 할 수 있는 방법에는 여러가지가 있다.

SQLite DB를 이용한 데이터 관리, 서버를 거친 DB에 의한 관리, Input,OutputStreamReader를 이용한 관리,

SharedPreferences를 이용한 관리 등이 있으며, 여기서는 SharedPreferences를 이용한 방법에 대해

알아보겠다.


SharedPreferences키와 벨류로 이루어진 파일 형식으로 데이터를 저장하는 방법으로,

Boolean, Float, Int, Long, String 형태로 데이터를 저장할 수 있다.

어플의 설정값, 사용자 설정 정보등을 저장하는데 적합하며 사용법은 다음과 같다.


선언

SharedPreferences mPref = PreferenceManager.getDefaultSharedPreferences(context);


데이터 저장

SharedPreferences.Editor editor = mPref.edit();

editor.putString("key", "value");

editor.commit();


데이터 호출

String callValue = mPref.getString("key", "default value");

*호출하는 키에 대응하는 값이 없을 경우 디폴트로 설정한 데이터가 출력된다.


데이터 삭제

SharedPreferences.Editor editor = mPref.edit();

editor.remove("key"); or editor.clear();

editor.commit();



주의할점은 만약 기존 데이터의 형을 변경시키고싶다면

반드시 클리어를 한 다음 변경사항을 적용시킨다. 그렇지않으면 예외가 발생하게된다.


SharedPreferences의 장점은 심플한 사용과 관리가 아닐까 한다.



'Android > 입/출력' 카테고리의 다른 글

기본적인 JSONObject, JSONArray 사용법  (3) 2014.03.21
SharedPreferences 사용법을 알아보자.  (1) 2014.01.14

댓글을 달아 주세요