1. 개요

Java에서 JSON 데이터로 작업하는 것은 쉬울 수 있지만 Java의 대부분과 마찬가지로 선택할 수있는 많은 옵션과 라이브러리가 있습니다.

이 사용방법(예제)는 이러한 선택을 더 쉽게 만들고 현재 생태계에 대한 확실한 이해를 제공해야합니다. Java에서 가장 일반적인 JSON 처리 라이브러리에 대해 설명합니다.

우리는 각 라이브러리에 대한 간단한 구조를 따르고 있습니다. 먼저 시작하는 데 유용한 몇 가지 리소스 (여기 Baeldung과 ​​외부 모두). 그런 다음 기본 코드 예제 를 살펴보고 라이브러리 작업이 실제로 어떻게 보이는지 살펴 보겠습니다.

2. 인기도와 기본 통계

먼저, 각 라이브러리의 인기도를 나타내는 몇 가지 통계부터 시작하겠습니다.

2.1. 잭슨

2.2. Gson

  • Maven 사용 : 1588
  • Github 별 : 2079
  • Github 포크 : 471

2.3. json-io

  • Maven 사용 : 11
  • Github 별 : 129
  • Github 포크 : 40

2.4. Genson

3. 잭슨

다음으로 이들 중 가장 인기있는 잭슨을 살펴 보겠습니다. Jackson은 JSON 데이터 처리를위한 다목적 Java 라이브러리입니다.

3.1. 유용한 자료

다음은 도서관의 공식 자료입니다.

Baeldung에서 :

기타 흥미로운 글 :

3.2. Maven 의존성

라이브러리를 사용하려면-여기에 pom.xml 에 추가 할 Maven 의존성이 있습니다 .

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>${jackson.version}</version>
</dependency>

참고 최신 버전 잭슨의 지금이다 2.6.3 .

3.3. Jackson을 사용한 간단한 예

이제 간단한 예제에서 Jackson을 사용하는 방법을 살펴 보겠습니다.

@Test
public void whenSerializeAndDeserializeUsingJackson_thenCorrect() 
  throws IOException{
    Foo foo = new Foo(1,"first");
    ObjectMapper mapper = new ObjectMapper();

    String jsonStr = mapper.writeValueAsString(foo);
    Foo result = mapper.readValue(jsonStr, Foo.class);
    assertEquals(foo.getId(),result.getId());
}

참고 :

  • ObjectMapper.writeValueAsString () 은 Object를 JSON 문자열로 직렬화하는 데 사용됩니다.
  • ObjectMapper.readValue () 는 JSON 문자열을 Java Object로 deserialize하는 데 사용됩니다.
  • 샘플 JSON 출력 :
{
    "id":1,
    "name":"first"
}

4. Gson

Gson은 우리가 살펴볼 다음 Java JSON 라이브러리입니다.

4.1. 유용한 자료

다음은 도서관의 공식 자료입니다.

Baeldung에서 :

기타 흥미로운 글 :

4.2. Maven 의존성

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>${gson.version}</version>
</dependency>

참고 최신 버전 GSON의 지금입니다 2.4 .

4.3. Gson을 사용한 간단한 예

다음은 Gson을 사용하여 JSON을 직렬화 / 해제하는 방법을 설명하는 간단한 예제입니다.

@Test
public void whenSerializeAndDeserializeUsingGson_thenCorrect(){
    Gson gson = new Gson();
    Foo foo = new Foo(1,"first");

    String jsonStr = gson.toJson(foo);
    Foo result = gson.fromJson(jsonStr, Foo.class);
    assertEquals(foo.getId(),result.getId());
}

참고 :

  • Gson.toJson () 은 Object를 JSON으로 직렬화하는 데 사용됩니다.
  • Gson.fromJson () 은 JSON을 Java Object로 desrialize하는 데 사용됩니다.

5. Json-io

Json-io는 JSON을 직렬화 / 역 직렬화하는 간단한 Java 라이브러리입니다.

5.1. 유용한 자료

다음은 도서관의 공식 자료입니다.

5.2. Maven 의존성

<dependency>
    <groupId>com.cedarsoftware</groupId>
    <artifactId>json-io</artifactId>
    <version>${json-io.version}</version>
</dependency>

참고하는 최신 버전 JSON-IO의 지금이다 4.1.9 .

5.3. json-io를 사용한 간단한 예

이제 json-io를 사용하는 간단한 예를 살펴 보겠습니다.

@Test
public void whenSerializeAndDeserializeUsingJsonio_thenCorrect(){
    Foo foo = new Foo(1,"first");

    String jsonStr = JsonWriter.objectToJson(foo);
    Foo result = (Foo) JsonReader.jsonToJava(jsonStr);
    assertEquals(foo.getId(),result.getId());
}

참고 :

  • JsonWriter.objectToJson () 은 Object를 JSON으로 직렬화하는 데 사용됩니다.
  • JsonReader.jsonToJava () 는 Json을 Java Object로 deserialize하는 데 사용됩니다.
  • 샘플 JSON 출력 :
{
    "@type":"org.baeldung.Foo",
    "id":1,
    "name":"first"
}

6. Genson

Genson은 완전한 데이터 바인딩 및 스트리밍을 제공하는 Java 및 Scala에서 JSON으로의 변환 라이브러리입니다.

6.1. 유용한 자료

다음은 도서관의 공식 자료입니다.

6.2. Maven 의존성

<dependency>
    <groupId>com.owlike</groupId>
    <artifactId>genson</artifactId>
    <version>${genson.version}</version>
</dependency>

참고 최신 버전 Genson의 지금입니다 1.3.

6.3. Genson을 사용한 간단한 예

다음은 라이브러리 작업에 대한 간단한 예입니다.

@Test
public void whenSerializeAndDeserializeUsingGenson_thenCorrect(){
    Genson genson = new Genson();
    Foo foo = new Foo(1,"first");

    String jsonStr = genson.serialize(foo);
    Foo result = genson.deserialize(jsonStr, Foo.class);
    assertEquals(foo.getId(),result.getId());
}

참고 :

  • Genson.serialize () 는 Object를 JSON으로 직렬화하는 데 사용됩니다.
  • Genson.desrialize () 는 JSON을 Java Object로 deserialize하는 데 사용됩니다.

7. 결론

이 빠른 개요 기사에서는 Java에서 가장 일반적인 JSON 처리 라이브러리에 대해 배웠습니다.