JSON 객체의 값을 꺼내오는 방법

2012. 12. 24. 09:00Development/[Java] 자바

728x90

JSON의 경우에는 자바의 맵과 같이 <key, value> 의 쌍으로 이루어져 있다.

쉽게 말해, 실과 바늘 같은 존재라고 할까?

가장 쉽게 이해할 수 있는 것이 바로 전화번호부이다.

내가 1번을 홍길동이라는 친구로 저장을 했다면, key값은 1, value는 홍길동이 되는 것이다. 이것을 JSON형태로 표현하자면 <1, 홍길동>이 되는 것이다.

자바의 LIST와 MAP을 통해 JSON형태를 만들어 내고자 하는이유는, 서버 통신을 통해 DB에서 SQL문을 전송하고, 조건에 해당하는 값을 리턴 받을 때, 편리하게 그 리턴받은 결과값을 원하는 형태로 재가공하기 위함이며 이를 위한 방법은 여러가지가 있다. 

JSON에서 제공하는 방법을 사용할 수도 있고, 자바 자체의 꼼수(?)를 사용할 수도 있다.

 

구체적인 SQL은 생략하고, JSON형태를 만들기 위한 예시 코드는 다음과 같다.

 

 for(int i=0;i<5;i++){ 
  testMap.put("이름", "홍길동"); 
  testMap.put("거주지", "서울"); 
  testMap.put("신장", "179cm"); 
  testMap.put("결혼", "미혼"); 
  testMap.put("취미", "야구"); 
  testList.add(testMap); 
 } 

 

위와 같이 List안에 map을 넣으면 다음과 같은 JSON형태의 구조가 형성된다.

[ {"이름":"홍길동", "거주지":"서울", "신장":"179cm", "결혼":미혼", "취미":"야구" } ]

 

[] 이것이 List가 되며, 그안의 {}가 또하나의 Map을 이루게 된다. 따라서 map {}이 녀석이 각각 한개의 행(row)으로 구성이 되며, List안에 독립적으로 한 행을 차지하게 되는 구조이다. 따라서 리턴받은 결과값을 원하는 대로 사용하기 용이해지는데, 그 방법은 다음과 같다.

 

for(key in result) {

   result[0].이름;

   result[0].거주지;

   result[0].신장;

   result[0].결혼;

   result[0].취미;

}

 

일반적인 for형태를 보던 나도 in 의 의미를 몰랐으나, JSON형태의 값을 꺼내오기 위한 for문이라고 생각하면 되었다.

 

 

 

728x90