sitelink1 | http://blog.naver.com/pajamasi/220554352594 |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
sitelink5 | |
sitelink6 |
해당 포스팅은 굳이 공부 하지 않으셔도 JSON 파싱에 문제가 없습니다.
JSON DATA 를 다루다가 보면, 데이터가 너무 많아서 해당 데이터가 무엇 인지 알 수가 없을때가 있다.
XML 이라면 한눈에 딱 보고 아 이거구나! 하고 알 수 있겟지만 JSON길이가 방대하면
LEVEL 단계를 알기가 쉽지 않기 떄문에 KEY 값을 알고 싶을 때가 있다.
그럴때 앞선 예제에 추가를 한다.
요기서 중요한 점은 JSON 은 MAP 클래스를 상속 받아서 사용하고 있기 때문에, 당연히 KEY값을 KeySet()를 가지고 있다.
이부분은 자바에서 map, hashmap 부분을 참고 하길 바란다.
-
import java.util.Iterator;
-
import java.util.Set;
-
-
import org.json.simple.JSONObject;
-
import org.json.simple.parser.JSONParser;
-
import org.json.simple.parser.ParseException;
-
-
public class Main {
-
-
public static void main(String[] args)
-
{
-
// json data 준비
-
JSONObject json_data = new JSONObject();
-
-
// 데이터 추가
-
json_data.put("이름","홍길동");
-
json_data.put("나이", new Integer(20));
-
json_data.put("성별", new Boolean(true));
-
json_data.put("국가", "대한민국");
-
-
-
// json 문자열로 변환
-
String json = json_data.toJSONString();
-
-
// 출력
-
System.out.println(json);
-
-
/** 결과 : {"국가":"대한민국","이름":"홍길동","나이":20,"성별":true} */
-
-
-
// 파싱하기
-
-
// 파싱 객체 생성
-
JSONParser parser = new JSONParser();
-
-
try
-
{
-
//파싱할 문자열 지정 후 json object로 형변환
-
JSONObject obj = (JSONObject)parser.parse(json);
-
-
// 몇개의 오브젝트가 들어있는가?
-
System.out.println("오브젝트의 갯수 : "+obj.size());
-
-
// key set 받아오기
-
Set key = obj.keySet();
-
-
// Iterator 설정
-
Iterator<String> iter = key.iterator();
-
-
// 각각 키 값 출력
-
while(iter.hasNext())
-
{
-
String keyname = iter.next();
-
System.out.println("key : "+keyname+" type : "+obj.get(
-
keyname).getClass());
-
}
-
-
}
-
catch (ParseException e)
-
{
-
e.printStackTrace();
-
}
-
-
}// main method end
-
-
} // main class end
-
44~56번째 줄이 앞선 예제에서 변경 되었다. key 값을 가져 올 수가 있다. 해당 타입도 구분 할 수 있으니, 해당 타입을 가지고 적절 하게 파싱을 하면 된다. 향후 예제에서도 사용할 예정이니 "저렇게 사용하는구나" 로 알고 넘어가자.
프로젝트는 파일로 첨부 했습니다.