Java JSON 라이브러리

JavaBeginner
지금 연습하기

소개

JSON (JavaScript Object Notation) 은 가볍고 널리 사용되는 데이터 교환 형식입니다. 읽고 쓰기 쉬우며 클라이언트 - 서버 간의 데이터 교환에 널리 사용됩니다. 이 랩에서는 Jackson, Gson, Genson, Json-io 를 포함한 인기 있는 Java JSON 라이브러리를 사용하여 객체를 JSON 형식으로 직렬화 (serialize) 및 역직렬화 (deserialize) 하는 방법을 배우게 됩니다.

프로젝트 설정

  1. 터미널을 열고 cd ~/project를 실행하여 프로젝트 디렉토리로 이동합니다.
  2. 터미널에서 touch JsonLab.java 명령을 실행하여 이 랩을 위한 새로운 Java 파일을 생성하고 다음 코드를 붙여넣습니다.
import java.io.IOException;

public class JsonLab {
    public static void main(String[] args) throws IOException {
        ClassA classAObj = new ClassA("Demo", 20.0); // create object to serialize and deserialize later
    }

    // add ClassA class here
}

Jackson 라이브러리 사용

  1. Jackson 을 사용하려면 pom.xml 파일에 Jackson Maven 의존성을 추가해야 합니다.
<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
    </dependency>
</dependencies>
  1. 다음으로, ObjectMapper 클래스를 사용하여 객체를 JSON 문자열로 직렬화 (serialize) 및 역직렬화 (deserialize) 해야 합니다.
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonLab {
  public static void main(String[] args) throws IOException {
    ObjectMapper objMapper = new ObjectMapper();
    ClassA classAObj = new ClassA("Demo", 20.0);

    // Serialization
    String jsonString = objMapper.writeValueAsString(classAObj);
    System.out.println("Serialized String: " + jsonString);

    // Deserialization
    ClassA objFromStr = objMapper.readValue(jsonString, ClassA.class);
    System.out.print("Deserialized Object: " + objFromStr.getField1() + " " + objFromStr.getField2());
  }
}

Gson 라이브러리 사용법

  1. Gson 을 사용하려면 pom.xml 파일에 Gson Maven 의존성을 추가해야 합니다.
<dependencies>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${gson.version}</version>
    </dependency>
</dependencies>
  1. 다음으로, Gson 객체를 사용하여 객체를 직렬화 (serialize) 및 역직렬화 (deserialize) 해야 합니다.
import com.google.gson.Gson;

public class JsonLab {
  public static void main(String[] args) throws IOException {
    Gson gson = new Gson();
    ClassA obj = new ClassA("Demo", 20.0);

    // Serialization
    String jsonStrFromObj = gson.toJson(obj);
    System.out.println("Serialized String: " + jsonStrFromObj);

    // Deserialization
    ClassA objFromJsonStr = gson.fromJson(jsonStrFromObj, ClassA.class);
    System.out.print("Deserialized Object: " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
  }
}

Genson 라이브러리 활용 방법

  1. Genson 을 사용하려면 pom.xml 파일에 Genson Maven 의존성을 추가해야 합니다.
<dependencies>
    <dependency>
        <groupId>com.owlike</groupId>
        <artifactId>genson</artifactId>
        <version>${genson.version}</version>
    </dependency>
</dependencies>
  1. 다음으로, Genson 객체를 사용하여 객체를 직렬화 (serialize) 및 역직렬화 (deserialize) 해야 합니다.
import com.owlike.genson.Genson;

public class JsonLab {
  public static void main(String[] args) throws IOException {
    Genson genson = new Genson();
    ClassA obj = new ClassA("Demo", 20.0);

    // Serialization
    String jsonStrFromObj = genson.serialize(obj);
    System.out.println("Serialized String: " + jsonStrFromObj);

    // Deserialization
    ClassA objFromJsonStr = genson.deserialize(jsonStrFromObj, ClassA.class);
    System.out.print("Deserialized Object: " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
  }
}

Json-io 라이브러리 사용 가이드

  1. Json-io 라이브러리를 사용하려면 pom.xml 파일에 Json-io Maven 의존성을 추가해야 합니다.
<dependencies>
  <dependency>
    <groupId>com.cedarsoftware</groupId>
    <artifactId>json-io</artifactId>
    <version>${json-io.version}</version>
  </dependency>
</dependencies>
  1. 다음으로, JsonWriterJsonReader를 사용하여 객체를 직렬화 (serialize) 및 역직렬화 (deserialize) 해야 합니다.
import com.cedarsoftware.util.io.JsonReader;
import com.cedarsoftware.util.io.JsonWriter;

public class JsonLab {
  public static void main(String[] args) throws IOException {
    ClassA obj = new ClassA("Demo", 20.0);

    // Serialization
    String jsonStrFromObj = JsonWriter.objectToJson(obj);
    System.out.println("Serialized String: " + jsonStrFromObj);

    // Deserialization
    ClassA objFromJsonStr = (ClassA) JsonReader.jsonToJava(jsonStrFromObj);
    System.out.print("Deserialized Object: " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
  }
}

요약

이 랩에서는 다양한 Java JSON 라이브러리를 사용하여 객체를 JSON 형식으로 변환하고 그 반대로 변환하는 방법을 배웠습니다. Jackson, Gson, Genson 및 Json-io 라이브러리를 사용하여 객체를 JSON 으로 직렬화 (serialize) 하고 역직렬화 (deserialize) 하는 방법을 익혔습니다.