STUDY/Spring

JSON 데이터 다루기 - org.json 패키지

seonyounggg 2021. 2. 15. 23:49

JSON은 Javascript Object Notation 의 줄임말로, 자바스크립트의 객체 표현 형식을 의미한다.

key-value 쌍으로 이루어져있어, xml에 비해 직관적이고 간단하다.

//JSON 예시 1
{
"이름" : "Jason",
"나이" : 23
}

//JSON 예시 2
{
"items" : [
    {
        "title" : "test1",
        "price" : 123
    },
    {
    	"title" : "test2",
        "price" : 456
    },
]}

 

Java에서 JSON을 다루는 방법 중 하나는 org.json 패키지를 설치하여 이용하는 것이다. (이외에도 다양한 라이브러리가 있다)

Maven을 사용하는 경우 의존 설정을 통해 간편하게 이용할 수 있다.

 

● org.json 패키지 설치하기

먼저 아래 사이트에 접속하여 검색창에 "json in java"라고 검색한다.

 

Maven Repository: Search/Browse/Explore

SchemaCrawler Text Last Release on Feb 15, 2021

mvnrepository.com

위 라이브러리의 버전 중, Usages가 가장 높은 버전을 선택하였다.

Gradle 탭을 선택하고 해당 텍스트를 복사하여 build.gradle > dependencies 안에 붙여넣는다.

그 후 dependencies 옆에 RUN 버튼을 눌러 적용한다.

IntelliJ 기준 우측 Gradle 탭을 클릭한 후 동기화 버튼을 클릭하면 임포트가 완료된다.

 

● org.json 패키지 이용하기

String result에 JSON 값이 담겨오는 경우에 활용하는 방법은 아래와 같다.

위 예시2를 이용해보겠다.

 

- 문자열 정보를 JSONObject로 바꾸기

JSONObject rjson = new JSONObject(result);

- JSONObject에서 key가 items인 배열 꺼내기

JSONArray items = rjson.getJSONArray("items");

- JSONArray에 들어있는 JSONObject 꺼내기

for(int i = 0; i<items.length(); i++) {
    JSONObject itemJson = items.getJSONObject(i);
    //JSONObject itemJson = (JSONObject) items.get(i);
    System.out.println(itemJSON);
}

- JSONObject에서 String, int 데이터 뽑기

String title = itemJson.getString("title");
int price = itemJson.getInt("price");