PostIT

[Java/Json] Json데이터 Java로 파싱하기 - 퍼옴 본문

Java

[Java/Json] Json데이터 Java로 파싱하기 - 퍼옴

shun10114 2016. 10. 20. 12:43

http://huskdoll.tistory.com/6


자바에서 JSON을 처리 하는 부분입니다.

String 형식의 JSON을 JSONObject 형으로 만들어 추출하는 예제 입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
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();
        }
 
    }
 
}



Comments