JSON 데이터 다루기 - org.json 패키지
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");