Notice
Recent Posts
Recent Comments
Link
관리 메뉴

데브마우스

[JSON] org.json 라이브러리를 사용하여 Java에서 JSON 사용하는 방법 본문

JSON

[JSON] org.json 라이브러리를 사용하여 Java에서 JSON 사용하는 방법

데브마우스 2024. 1. 30. 10:40

org.json 라이브러리는 무엇인가요?

자바의 JSON 패키지의 레퍼런스 구현체입니다. (출처: https://github.com/stleary/JSON-java

 

org.json 라이브러리는 메이븐 레포지터리(Maven Repository)에서 다운로드할 수 있습니다.

메이븐 레포지터리 링크: https://mvnrepository.com/artifact/org.json/json

 

org.json 라이브러리를 사용할 때 저는 주로 3가지 클래스를 import 합니다.

import org.json.JSONArray; // JSON 배열을 읽기 위해 사용
import org.json.JSONObject; // JSON 객체를 읽기 위해 사용
import org.json.JSONTokener; // JSON 파일을 읽기 위해 사용

org.json 라이브러리 사용 방법

org.json 라이브러리 사용 순서
순서 코드 설명
1 import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;
org.json 라이브러리 사용을 위한 클래스를 import 합니다.
2 String src = "FILENAME.json";
사용할 json 파일의 이름을 작성합니다.
3 InputStream is= JAVA_FILE_NAME.class.getResourceAsStream(src);
Java에서 경로에 있는 리소스 파일을 읽기 위한 코드입니다.
4 if(is==null) {
throw new NullPointerException("Cannot find resource file!!!!!!!!!");
}
파일이 없을 경우 예외를 발생시킵니다.
5 JSONTokener tokener = new JSONTokener(is);
- InputStream으로 읽은 파일을 Token 단위로 쪼개는 역할을 합니다.
- println 출력: tokener : at 0 [character 1 line 1]
6.1 JSONObject obj = new JSONObject(tokener);
JSON이 {객체}로 시작할 경우 JSONObject로 초기화합니다.
6.2 JSONArray arr = new JSONArray(tokener);
JSON이 [배열]로 시작할 경우, JSONArray로 초기화합니다.
7 // 지그재그
- 객체 안에는 배열이 있다면 형 변환을 해줘야, 배열에 접근할 수 있습니다.
- 배열 안에는 객체가 있다면 형 변환을 해줘야, 객체에 접근할 수 있습니다.
- key가 있다면 getString, getInt 등으로 value값을 얻을 수 있습니다.
7.1 JSONArray arr1 = obj.getJSONArray("person");
- 객체에서 배열로 형 변환하고 배열에 접근합니다.
- arr1을 출력시키면 [배열]안의 모든 객체가 출력됩니다.
7.2 JSONObject obj2 = (JSONObject) arr1.get(0);
- [배열]에서 {객체}로 형 변환하고 0번째 [배열]의 {객체}에 접근합니다.
- obj2를 출력시키면 0번째 [배열]에 들어있는 {객체}의 멤버가 출력됩니다.
8
String address = obj2.getString("address");
- [객체]의 address를 key 값으로 value 값을 획득합니다.
int age = temp_obj.getInt("age");
- [객체]의 age를 key 값으로 value 값을 획득합니다.
Double age = temp_obj.getDouble("weight");
- [객체]의 weight를 key 값으로 value 값을 획득합니다.