본문 바로가기
Development/Android

[안드로이드] Andorid Json 파싱

by 푸민 2015. 9. 30.
반응형


안녕하세요 푸민입니다.

저번 시간에 이어서 이번에는 Json 파싱에 대해서 알아볼게요!

Json Xml에 비해서 굉장히 가볍고 구조가 가독성 편리성 등등등 굉장히 많은 장점을 가지고 있습니다. 그래서 요즘은 대부분 개발에 Json 구조를 많이 사용해요!


기본적으로 Json 구조는 아래와 같습니다.

{
  "firstName": "John",
  "lastName": "Smith",
  "isAlive": true,
  "age": 25,
  "address": {
    "streetAddress": "21 2nd Street",
    "city": "New York",
    "state": "NY",
    "postalCode": "10021-3100"
  },
  "phoneNumbers": [
    {
      "type": "home",
      "number": "212 555-1234"
    },
    {
      "type": "office",
      "number": "646 555-4567"
    }
  ],
  "children": [],
  "spouse": null
}

- 위키


위와 같이 굉장히 단순하게 대괄호와 중괄호를 사용하여 데이터구조를 표현합니다.


자자 그러면 어떻게 사용하는지 알아볼까요?


JsonFactory jsonFactory = new JsonFactory();

JsonParser jsonParser = jsonFactory.createJsonParser(content);


먼저 JconFactory 를 생성합니다. 이 Factory 는 어딜가나 많이 사용하죠! 바로 디자인 패턴중 하나입니다. ㅎㅎ 그리고나서 JsonFactory 를 이용하여 JsonParser 를 생성합니다. 생성할때는 content 인자값을 넘겨주는데, byte[], InputStream, String, Url, Reader, File 이 들어갈 수 있습니다.


while (jsonParser.nextToken() != JsonToken.END_OBJECT) {

if (jp.getCurrentToken() == JsonToken.VALUE_NULL) {

continue;

}


String fieldName = jsonParser.getCurrentName();

if(fieldName.equals("response")){

text = jsonParser.getText();

}

}


이처럼 while 문을 사용하여 현재 필드의 이름을 들고와서 비교해보고, 값을 가져올수 있습니다. 하지만 요즘에는 Gson 과 같은 오픈 Api 가 굉장히 잘되어 있어요! 클래스를 만들어 놓고 매칭시켜서 자동 파싱도 되기에 ㅎㅎ Gson 에 대해서는 다음번에 쓰도록 하겠습니다~

반응형

댓글