구글광고상단


[FAQ:JSON]json-simple 디코딩 하기 Java

JAVA 의 JSON  모듈중 json-simple를 사용해서 디코딩 하는 방법이다.

JSON 파일 포맷은 아래와 같습니다.


해당 JSON 의 문자열을 디코딩 하는 방법을 설명 합니다.

JSON의 형태와 json-simple의 클래스와 매칭을 해보면 {}는 JSONObject와 연결이 되고, []는 JSONArray와 연결이 됩니다.

그럼 위의 문자열을 보면 맨처음 시작이 { 로 시작 합니다. 그러면 해당 스트링을 아래와 같이 JSONObject로 받습니다.

          JSONObject obj = (JSONObject) JSONValue.parse(jsonstring);

  JSONObject channelObj = (JSONObject)obj.get("channel");

JSONObject는 내부적으로 HashMap형태로 구성되었습니다. HashMap는 키값 값으로 구성되었있죠. {}로 둘러 싸인 변수의 값을 가져오려면 아래와 같이 합니다.

     String result = (String)channelObj.get("result");
    String title = (String)channelObj.get("title");
    String totalCount = (String)channelObj.get("totalCount");
    String description = (String)channelObj.get("description");
    String link = (String)channelObj.get("link");

{}로 둘러 싸인 내부의 값들중에 []로 둘러 싸운 부분이 있습니다. 위에 []는 JSONArray로 값을 받습니다.

          JSONArray itemArray = (JSONArray)channelObj.get("item");

JSONArray로 받은 itemArray는 HashMap를 담고 있는 배열로 보시면 됩니다. item하위에 보시면 또 {}로 된 데이터가 존재합니다. 그러면 마찬가지로 JSONObject로 받아 올수 있습니다.

       JSONObject itemObj = (JSONObject)itemArray.get(0);
       JSONObject itemObj = (JSONObject)itemArray.get(1);
        .
        .
        .
       JSONObject itemObj = (JSONObject)itemArray.get(n); 

인덱스를 통해서 0 ~ n 번째까지의 JSONObject를 가져올수 있습니다. 연속적으로 가져오려면 for문을 사용하시면됩니다. 그리고 각 인덱스 객체에서 하위 값을 가져오러면 아래와 같이 합니다.

     String item_author = (String)itemObj.get("author");
    String item_pubDate = (String)itemObj.get("pubDate");
    String item_title = (String)itemObj.get("title");
    String item_thumbnail = (String)itemObj.get("thumbnail");

여기 까지 하면 위의 문자열을 모두 디코딩 할 수 있는 소스가 완성이 됩니다.

이상 json-simple에서 decode 방법 입니다. 



공유하기 버튼

 

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://onstory.egloos.com/tb/2133519 [도움말]

덧글

댓글 입력 영역


구글광고수직

통계 위젯 (화이트)

064
316
49942