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 값을 가져 올 수가 있다. 해당 타입도 구분 할 수 있으니, 해당 타입을 가지고 적절 하게 파싱을 하면 된다. 향후 예제에서도 사용할 예정이니 "저렇게 사용하는구나" 로 알고 넘어가자.

 

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

번호 제목 글쓴이 날짜 조회 수
351 java.lang.IllegalArgumentException 황제낙엽 2010.01.18 130513
350 Using RSS in JSP pages (Informa Project) 황제낙엽 2006.01.10 37829
349 JSP 파일에서 getOutputStream() has already been called for this response 에러 황제낙엽 2013.04.24 11479
348 한글 파일명 깨짐으로 살펴본 다국어 처리 문제 (UTF-8) 황제낙엽 2012.03.22 10121
347 세션의 timeout 설정 >> HttpSession.setMaxInactiveInterval() 황제낙엽 2019.07.03 8311
» [JSON기초04] 자바 JSON 데이터에서 KEY 값 알아오기 (TIP) 황제낙엽 2017.01.18 6641
345 java.util.Queue file 황제낙엽 2022.04.06 5382
344 쓰레드(Thread)를 중간에 종료시키는 방법 황제낙엽 2017.03.15 5127
343 Java 실행 옵션들 황제낙엽 2017.08.23 3367
342 일본어 전각 반각 변환 예제 소스 .첫번째 file 황제낙엽 2007.01.10 3070
341 byte배열에 대한 CRC 를 계산하는 메서드 (java.util.zip.CRC32) 황제낙엽 2010.03.14 2166
340 UTF형태 파일에서 BOM 제거하기 황제낙엽 2008.06.16 1938
339 File.delete() 와 File.deleteOnExit() 황제낙엽 2019.03.24 1887
338 [대용량 파일 업로드] multipart form parser - http file upload, database 저장 java class 연재2 file 황제낙엽 2009.06.19 1831
337 싱글톤 방식의 테스트용 Temporary Data Access Object 황제낙엽 2017.01.12 1603
336 servlet 에서의 json 한글처리 황제낙엽 2013.04.23 1519
335 날짜, 시간 문자열 값으로 Date 오브젝트로 만들기 >> SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US) 황제낙엽 2017.10.31 1516
334 J2EE object-caching frameworks (ObjectCache) 황제낙엽 2007.11.02 1495
333 [대용량 파일 업로드] multipart form parser - http file upload 기능 java class 연재1 file 황제낙엽 2009.06.19 1436
332 JavaMail - 네이버 메일 수신하기(POP3) 황제낙엽 2018.08.20 1413