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 부분을 참고 하길 바란다.

 

  1. import java.util.Iterator;

  2. import java.util.Set;

  3.  

  4. import org.json.simple.JSONObject;

  5. import org.json.simple.parser.JSONParser;

  6. import org.json.simple.parser.ParseException;

  7.  

  8. public class Main {

  9.  

  10.     public static void main(String[] args)

  11.     {

  12.         // json data 준비 

  13.         JSONObject json_data = new JSONObject();

  14.         

  15.         // 데이터 추가

  16.         json_data.put("이름","홍길동");

  17.         json_data.put("나이", new Integer(20));

  18.         json_data.put("성별", new Boolean(true));

  19.         json_data.put("국가", "대한민국");

  20.         

  21.         

  22.         // json 문자열로 변환

  23.         String json = json_data.toJSONString();

  24.  

  25.         // 출력

  26.         System.out.println(json);

  27.         

  28.         /** 결과 : {"국가":"대한민국","이름":"홍길동","나이":20,"성별":true}  */

  29.         

  30.         

  31.         // 파싱하기

  32.         

  33.         // 파싱 객체 생성

  34.         JSONParser parser = new JSONParser();

  35.         

  36.         try

  37.         {

  38.             //파싱할 문자열 지정 후 json object로 형변환 

  39.             JSONObject obj = (JSONObject)parser.parse(json);

  40.             

  41.             // 몇개의 오브젝트가 들어있는가?

  42.             System.out.println("오브젝트의 갯수 : "+obj.size());

  43.             

  44.             // key set 받아오기 

  45.             Set key = obj.keySet();

  46.             

  47.             // Iterator 설정

  48.             Iterator<String> iter = key.iterator();

  49.             

  50.             // 각각 키 값 출력

  51.             while(iter.hasNext())

  52.             {

  53.                 String keyname = iter.next();

  54.                 System.out.println("key : "+keyname+" type : "+obj.get(

  55.                                     keyname).getClass());

  56.             }

  57.                                  

  58.         }

  59.         catch (ParseException e)

  60.         {

  61.             e.printStackTrace();

  62.         }

  63.     

  64.     }// main method end

  65.  

  66. } // main class end 

  67.  

  68.  

 

 

44~56번째 줄이 앞선 예제에서 변경 되었다. key 값을 가져 올 수가 있다. 해당 타입도 구분 할 수 있으니, 해당 타입을 가지고 적절 하게 파싱을 하면 된다. 향후 예제에서도 사용할 예정이니 "저렇게 사용하는구나" 로 알고 넘어가자.

 

프로젝트는 파일로 첨부 했습니다.

번호 제목 글쓴이 날짜 조회 수
251 Calendar, Date, Format, java.time 패키지 황제낙엽 2017.10.31 108
250 날짜, 시간 문자열 값으로 Date 오브젝트로 만들기 >> SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US) 황제낙엽 2017.10.31 1516
249 시스템 속성(System Property) 클래스를 이용하여 jni 라이브러리 사용하기 황제낙엽 2017.09.22 37
248 Java 실행 옵션들 황제낙엽 2017.08.23 3367
247 HttpsURLConnection 을 사용한 SSL서버 접속 file 황제낙엽 2017.08.02 231
246 서버구동시 주기적으로 동작을 수행하는 스레드를 함께 실행하는 서블릿 황제낙엽 2017.08.02 131
245 HttpURLConnection 사용 샘플( JSP , SERVLET ) 황제낙엽 2017.08.01 254
244 HttpURLConnection 사용하기 황제낙엽 2017.08.01 393
243 [HttpURLConnection] POST로 파라미터 넘기기 황제낙엽 2017.08.01 507
242 HttpURLConnection POST 방식 사용하기 황제낙엽 2017.08.01 370
241 Runtime 클래스를 이용한 윈도우 프로그램 실행 예제 황제낙엽 2017.08.01 113
240 JSON Util (JSON 을 다루기 위해 직접 작성한 유틸 클래스) file 황제낙엽 2017.07.10 461
239 자바 리플렉션(Java Reflection) 간단한 설명 및 사용방법 정리 file 황제낙엽 2017.07.10 135
238 Generate random numbers (Random.java) 황제낙엽 2017.07.02 490
237 쓰레드(Thread)를 중간에 종료시키는 방법 황제낙엽 2017.03.15 5127
236 JSON 라이브러리(API) 종류 황제낙엽 2017.01.18 404
» [JSON기초04] 자바 JSON 데이터에서 KEY 값 알아오기 (TIP) 황제낙엽 2017.01.18 6641
234 [JSON기초03] 자바 JSON Google Simple JSON을 이용한 간단한 JSON DATA 파싱 황제낙엽 2017.01.18 566
233 [JSON기초02] 자바 JSON Google Simple JSON을 이용한 간단한 JSON DATA 생성 황제낙엽 2017.01.18 111
232 [JSON기초01] JSON이란? XML이란? JSON 개념, XML 개념 설명 황제낙엽 2017.01.18 408