Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java로 JSON 파일 읽는 방법 – json-simple 라이브러리 완벽 가이드

JSON이란?

JSON(JavaScript Object Notation)은 사람이 읽고 쓰기 쉬운 데이터 교환을 위해 설계된 경량의 텍스트 기반 개방형 표준입니다. C, C++, Java, Python, Perl 등 주요 프로그래밍 언어에 익숙한 개발자라면 JSON의 문법 규칙을 어렵지 않게 이해할 수 있습니다.

샘플 JSON 문서

{
    "book": [
        {
            "id": "01",
            "language": "Java",
            "edition": "third",
            "author": "Herbert Schildt"
        },
        {
            "id": "07",
            "language": "C++",
            "edition": "second",
            "author": "E.Balagurusamy"
        }
    ]
}

json-simple 라이브러리란?

json-simple은 JSON 객체를 처리하기 위한 경량 라이브러리입니다. 이 라이브러리를 사용하면 Java 프로그램만으로도 JSON 문서의 내용을 손쉽게 읽거나 쓸 수 있습니다.

Maven 의존성 추가

json-simple 라이브러리를 프로젝트에서 사용하려면 먼저 아래의 Maven 의존성을 추가해야 합니다.

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

위 코드를 pom.xml 파일 마지막 부분의 <dependencies> 태그 안에 붙여넣으면 됩니다. (</project> 태그 앞에 위치시키세요.)

예제: sample.json 파일 준비하기

먼저 아래와 같이 6개의 키-값 쌍을 가진 sample.json 파일을 생성합니다.

{
    "ID": "1",
    "First_Name": "Shikhar",
    "Last_Name": "Dhawan",
    "Date_Of_Birth": "1981-12-05",
    "Place_Of_Birth": "Delhi",
    "Country": "India"
}

Java로 JSON 파일을 읽는 3단계

Java 프로그램으로 JSON 파일의 내용을 읽으려면 다음 세 단계를 따르면 됩니다.

  1. JSONParser 객체 생성 – json-simple 라이브러리의 JSONParser 클래스를 인스턴스화합니다.
  2. parse() 메서드로 파싱 – JSON 파일의 내용을 parse() 메서드로 분석하여 JSONObject로 변환합니다.
  3. get() 메서드로 값 조회 – 키 이름을 지정하여 해당하는 값을 가져옵니다.

1단계: JSONParser 객체 생성

JSONParser jsonParser = new JSONParser();

2단계: parse() 메서드로 JSON 파일 파싱

// JSON 파일의 내용을 파싱합니다.
JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader("E:/players_data.json"));

3단계: get() 메서드로 키에 해당하는 값 가져오기

String value = (String) jsonObject.get("key_name");

전체 예제 코드

다음 Java 프로그램은 앞서 생성한 sample.json 파일을 파싱하고, 그 내용을 읽어 콘솔에 출력합니다.

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class ReadingJSON {
    public static void main(String args[]) {
        // JSONParser 객체 생성
        JSONParser jsonParser = new JSONParser();
        try {
            // JSON 파일의 내용을 파싱
            JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader("E:/sample.json"));
            String id = (String) jsonObject.get("ID");
            String first_name = (String) jsonObject.get("First_Name");
            String last_name = (String) jsonObject.get("Last_Name");
            String date_of_birth = (String) jsonObject.get("Date_Of_Birth");
            String place_of_birth = (String) jsonObject.get("Place_Of_Birth");
            String country = (String) jsonObject.get("Country");

            // 결과 출력
            System.out.println("Contents of the JSON are: ");
            System.out.println("ID :" + id);
            System.out.println("First name: " + first_name);
            System.out.println("Last name: " + last_name);
            System.out.println("Date of birth :" + date_of_birth);
            System.out.println("Place of birth: " + place_of_birth);
            System.out.println("Country: " + country);
            System.out.println(" ");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

실행 결과

Contents of the JSON are:
ID :1
First name: Shikhar
Last name: Dhawan
Date of birth :1981-12-05
Place of birth: Delhi
Country: India

이처럼 json-simple 라이브러리를 활용하면 몇 줄의 코드만으로 JSON 파일을 간편하게 읽고 원하는 데이터를 추출할 수 있습니다. 파일이 존재하지 않는 경우(FileNotFoundException), 입출력 오류(IOException), 파싱 오류(ParseException)에 대비한 예외 처리도 반드시 함께 작성하는 것이 좋습니다.