SeouliteLab

[Java/자바] JSON-Simple 라이브러리를 활용한 JSON 데이터 파싱 예제 본문

프로그래밍

[Java/자바] JSON-Simple 라이브러리를 활용한 JSON 데이터 파싱 예제

Seoulite Lab 2024. 3. 15. 09:13

JSON-Simple은 Java에서 JSON 데이터를 처리하기 위한 간편한 라이브러리입니다. 이 블로그 포스트에서는 JSON-Simple 라이브러리를 사용하여 JSON 데이터를 파싱하는 다양한 예제를 살펴보겠습니다.

1. JSON-Simple 라이브러리 설정

JSON-Simple을 사용하기 위해서는 먼저 프로젝트에 JSON-Simple 라이브러리를 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음과 같은 의존성을 추가합니다.

<dependency>
    <groupId>com.googlecode.json-simple</groupId>
    <artifactId>json-simple</artifactId>
    <version>1.1.1</version>
</dependency>

2. JSON-Simple 라이브러리를 사용한 JSON 파싱 예제

예제 1: 기본적인 JSON 파싱

간단한 JSON 문자열을 Java 객체로 파싱하는 예제입니다.

// JSON-Simple 라이브러리 임포트
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

// JSON 파싱 예제
public class Main {
    public static void main(String[] args) throws ParseException {
        String json = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";

        // JSON 문자열을 파싱하여 JSONObject로 변환
        JSONParser parser = new JSONParser();
        JSONObject jsonObject = (JSONObject) parser.parse(json);

        // JSONObject에서 필드 값 추출
        String name = (String) jsonObject.get("name");
        long age = (long) jsonObject.get("age");
        String city = (String) jsonObject.get("city");

        System.out.println("Name: " + name);  // 출력 결과: John
        System.out.println("Age: " + age);    // 출력 결과: 30
        System.out.println("City: " + city);  // 출력 결과: New York
    }
}

예제 2: 중첩된 JSON 파싱

중첩된 JSON 구조를 가진 데이터를 파싱하는 예제입니다.

// JSON-Simple 라이브러리 임포트
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

// JSON 파싱 예제
public class Main {
    public static void main(String[] args) throws ParseException {
        String json = "{\"name\":\"John\", \"age\":30, \"address\":{\"city\":\"New York\", \"zipcode\":\"10001\"}}";

        // JSON 문자열을 파싱하여 JSONObject로 변환
        JSONParser parser = new JSONParser();
        JSONObject jsonObject = (JSONObject) parser.parse(json);

        // JSONObject에서 중첩된 JSONObject 추출
        JSONObject addressObj = (JSONObject) jsonObject.get("address");
        String city = (String) addressObj.get("city");
        String zipcode = (String) addressObj.get("zipcode");

        System.out.println("City: " + city);      // 출력 결과: New York
        System.out.println("Zipcode: " + zipcode);// 출력 결과: 10001
    }
}

예제 3: JSON 배열 파싱

JSON 배열을 파싱하여 Java List로 변환하는 예제입니다.

// JSON-Simple 라이브러리 임포트
import org.json.simple.JSONArray;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import java.util.List;

// JSON 파싱 예제
public class Main {
    public static void main(String[] args) throws ParseException {
        String json = "[{\"name\":\"John\", \"age\":30}, {\"name\":\"Jane\", \"age\":25}]";

        // JSON 문자열을 파싱하여 JSONArray로 변환
        JSONParser parser = new JSONParser();
        JSONArray jsonArray = (JSONArray) parser.parse(json);

        // JSONArray를 List로 변환
        List<JSONObject> jsonList = (List<JSONObject>) jsonArray;

        for (JSONObject obj : jsonList) {
            System.out.println("Name: " + obj.get("name") + ", Age: " + obj.get("age"));
        }
        // 출력 결과: Name: John, Age: 30
        // 출력 결과: Name: Jane, Age: 25
    }
}