Json형식을 웹이나 다른 부분에서 받아 왔을때 해당 부분을 파싱 하는 예제 입니다.
* JavaScript 에서 JSON 생성 하시려는 분은 여기 참고 => http://huskdoll.tistory.com/11
* JavaScript 에서 JSON Parse 하시려는 분은 여기 참고 => http://huskdoll.tistory.com/49
* JAVA 에서 JSON 생성 하시려는 분은 여기 참고 => http://huskdoll.tistory.com/38
json_simple-1.1.jar 를 받거나 maven에 설정 하셔야 합니다.
1
2
3
4
5
|
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>
|
자바에서 JSON을 처리 하는 부분입니다.
String 형식의 JSON을 JSONObject 형으로 만들어 추출하는 예제 입니다.
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class JsonParserTest {
public static void main(String[] args) {
//JSON 데이터
String jsonInfo = "{\"books\":[{\"genre\":\"소설\",\"price\":\"100\",\"name\":\"사람은 무엇으로 사는가?\",\"writer\":\"톨스토이\",\"publisher\":\"톨스토이 출판사\"},{\"genre\":\"소설\",\"price\":\"300\",\"name\":\"홍길동전\",\"writer\":\"허균\",\"publisher\":\"허균 출판사\"},{\"genre\":\"소설\",\"price\":\"900\",\"name\":\"레미제라블\",\"writer\":\"빅토르 위고\",\"publisher\":\"빅토르 위고 출판사\"}],\"persons\":[{\"nickname\":\"남궁민수\",\"age\":\"25\",\"name\":\"송강호\",\"gender\":\"남자\"},{\"nickname\":\"예니콜\",\"age\":\"21\",\"name\":\"전지현\",\"gender\":\"여자\"}]}";
/*
{
"books": [
{
"genre": "소설",
"price": "100",
"name": "사람은 무엇으로 사는가?",
"writer": "톨스토이",
"publisher": "톨스토이 출판사"
},
{
"genre": "소설",
"price": "300",
"name": "홍길동전",
"writer": "허균",
"publisher": "허균 출판사"
},
{
"genre": "소설",
"price": "900",
"name": "레미제라블",
"writer": "빅토르 위고",
"publisher": "빅토르 위고 출판사"
}
],
"persons": [
{
"nickname": "남궁민수",
"age": "25",
"name": "송강호",
"gender": "남자"
},
{
"nickname": "예니콜",
"age": "21",
"name": "전지현",
"gender": "여자"
}
]
}
*/
try {
JSONParser jsonParser = new JSONParser();
//JSON데이터를 넣어 JSON Object 로 만들어 준다.
JSONObject jsonObject = (JSONObject) jsonParser.parse(jsonInfo);
//books의 배열을 추출
JSONArray bookInfoArray = (JSONArray) jsonObject.get("books");
System.out.println("* BOOKS *");
for(int i=0; i<bookInfoArray.size(); i++){
System.out.println("=BOOK_"+i+" ===========================================");
//배열 안에 있는것도 JSON형식 이기 때문에 JSON Object 로 추출
JSONObject bookObject = (JSONObject) bookInfoArray.get(i);
//JSON name으로 추출
System.out.println("bookInfo: name==>"+bookObject.get("name"));
System.out.println("bookInfo: writer==>"+bookObject.get("writer"));
System.out.println("bookInfo: price==>"+bookObject.get("price"));
System.out.println("bookInfo: genre==>"+bookObject.get("genre"));
System.out.println("bookInfo: publisher==>"+bookObject.get("publisher"));
}
JSONArray personInfoArray = (JSONArray) jsonObject.get("persons");
System.out.println("\r\n* PERSONS *");
for(int i=0; i<personInfoArray.size(); i++){
System.out.println("=PERSON_"+i+" ===========================================");
JSONObject personObject = (JSONObject) personInfoArray.get(i);
System.out.println("personInfo: name==>"+personObject.get("name"));
System.out.println("personInfo: age==>"+personObject.get("age"));
System.out.println("personInfo: gender==>"+personObject.get("gender"));
System.out.println("personInfo: nickname==>"+personObject.get("nickname"));
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
BigDecimal 사칙연산 (JAVA 계산) (0) | 2014.03.18 |
---|---|
contentType을 이미지(jpg)로 출력하기 (0) | 2014.03.18 |
이메일 형식 검증 (validation) (0) | 2014.03.13 |
Map의 key(키)로 정렬(Sort) 및 역정렬(Reverse) (0) | 2014.03.07 |
IF VS CASE 비교 (0) | 2014.03.07 |
댓글 영역