Whiteship's Note

[JSON in Java] JSON에서 필요한 데이터 뽑기

모하니?/Coding : 2010.04.01 15:26


참조: 
http://www.json.org/java/
http://decoder.tistory.com/38

예전에는 JSON.simple 이라는 프로젝트였나본데, 소스 코드를 묶어서 주네요. 의존성도 없고 깔끔하군요. 최근까지도 계속 업데이트를 하고 있는 것 같으니 믿고 써볼만 해 보입니다.

몇일 전 Confluence 위키 내용을 RestTemplate을 이용해서 가져온 적이 있는데, 그 데이터 타입을 XML로 받을까 JSON으로 받을까 고민했었는데 그냥 JSON으로 받기로 했습니다. XML 받아서 OXM으로 파싱해도 되는데 일단 전송되는 텍스트량이 XML은 너무 많고 JSON은 꽤 간결하기 떄문입니다. 그 뒤에 객체로 변환하는 과정이 둘 중에 어떤게 편하냐를 가지고도 판단해보려고 했는데 OXM 써보기도 전에 JSON으로 기울태세 입니다.

        RequestCallback callback = new SpringSproutDefaultRestRequestCallBack();
        ResponseExtractor<String> extractor = new SpringSproutJsonRestResponseExtractor();

        RestTemplate restTemplate = new RestTemplate();
        String result = restTemplate.execute(SPACE_LIST_URL, HttpMethod.GET, callback, extractor);
        System.out.println(result);

        // ref: http://decoder.tistory.com/38
        JSONObject spaceListJSON = new JSONObject(result);
        JSONArray spaceJSONArray = spaceListJSON.getJSONArray("space");
        for(int i = 0 ; i < spaceJSONArray.length() ; i++){
            JSONObject spaceJSON = spaceJSONArray.getJSONObject(i);
            System.out.println(spaceJSON.getString("name"));
            System.out.println(spaceJSON.getString("key"));
            System.out.println(spaceJSON.getString("description"));
        }

캬.... 간단하군요. 이제 저 코드를 Extractor 쪽으로 옮겨서 RestTemplate 호출할 때 자동으로 ConfluenceSpace 컬렉션 객체가 튀어나오도록 해봐야겠습니다.

top




: 1 : ··· : 15 : 16 : 17 : 18 : 19 : 20 : 21 : 22 : 23 : ··· : 299 :