JSON 문자열을 JSON 객체로 변환하기
JSON은 JavaScript Object Notation의 약자로, 데이터를 전송하고 저장하는 데 널리 사용되는 경량 데이터 교환 형식입니다.
Java에서는 JSONObject 클래스를 사용하여 문자열을 파싱해 맵(Map)과 유사한 객체를 생성할 수 있습니다. 이 객체는 내용을 조작하는 다양한 메서드와 함께 JSON 규격에 맞는 직렬화 기능도 제공합니다. 마찬가지로 JSONArray 클래스는 문자열을 파싱하여 벡터(Vector)와 유사한 배열 객체를 만들어 주며, 배열 요소를 다루는 메서드들을 지원합니다.
아래 두 가지 예제를 통해 JSON 문자열을 JSON 객체로 변환하는 방법을 살펴보겠습니다.
예제 1: JSONArray를 이용한 변환
JSON 배열 형태의 문자열을 JSONArray 객체로 변환하고, 각 요소를 순회하며 값을 추출하는 예제입니다.
import org.json.JSONObject;
import org.json.JSONArray;
public class StringToJSONTest {
public static void main(String args[]) {
String str = "[{\"No\":\"1\",\"Name\":\"Adithya\"},{\"No\":\"2\",\"Name\":\"Jai\"}, {\"No\":\"3\",\"Name\":\"Raja\"}]";
JSONArray array = new JSONArray(str);
for(int i = 0; i < array.length(); i++) {
JSONObject object = array.getJSONObject(i);
System.out.println(object.getString("No"));
System.out.println(object.getString("Name"));
}
}
}출력 결과
1 Adithya 2 Jai 3 Raja
예제 2: JSONObject를 이용한 변환
단일 JSON 객체 형태의 문자열을 JSONObject로 변환하고, 특정 키의 값을 가져오는 예제입니다.
import org.json.*;
public class StringToJsonObjectTest {
public static void main(String[] args) {
String str = "{\"name\": \"Raja\", \"technology\": \"Java\"}";
JSONObject json = new JSONObject(str);
System.out.println(json.toString());
String tech = json.getString("technology");
System.out.println(tech);
}
}출력 결과
{"name":"Raja","technology":"Java"}
Java이처럼 org.json 라이브러리의 JSONObject와 JSONArray 클래스를 활용하면 문자열 형태의 JSON 데이터를 손쉽게 객체로 변환하여 원하는 값을 조회하거나 조작할 수 있습니다. Maven이나 Gradle 프로젝트에서는 해당 라이브러리를 의존성으로 추가한 후 위 예제 코드를 바로 실행해 볼 수 있습니다.