1. 개요
Java에서 JSON 데이터로 작업하는 것은 쉬울 수 있지만 Java의 대부분과 마찬가지로 선택할 수있는 많은 옵션과 라이브러리가 있습니다.
이 사용방법(예제)는 이러한 선택을 더 쉽게 만들고 현재 생태계에 대한 확실한 이해를 제공해야합니다. Java에서 가장 일반적인 JSON 처리 라이브러리에 대해 설명합니다.
우리는 각 라이브러리에 대한 간단한 구조를 따르고 있습니다. 먼저 시작하는 데 유용한 몇 가지 리소스 (여기 Baeldung과 외부 모두). 그런 다음 기본 코드 예제 를 살펴보고 라이브러리 작업이 실제로 어떻게 보이는지 살펴 보겠습니다.
2. 인기도와 기본 통계
먼저, 각 라이브러리의 인기도를 나타내는 몇 가지 통계부터 시작하겠습니다.
2.1. 잭슨
2.2. Gson
2.3. json-io
2.4. Genson
3. 잭슨
다음으로 이들 중 가장 인기있는 잭슨을 살펴 보겠습니다. Jackson은 JSON 데이터 처리를위한 다목적 Java 라이브러리입니다.
3.1. 유용한 자료
다음은 도서관의 공식 자료입니다.
Baeldung에서 :
- Jackson 예제
- 잭슨 데이트
- Jackson JSON보기
- Jackson 어노테이션 사용방법(예제)
- Jackson 예외 – 문제 및 솔루션
- Jackson – 직렬화 / 역 직렬화 할 필드 결정
- Jackson – 양방향 관계
- Jackson – 커스텀 시리얼 라이저
- Jackson – 커스텀 디시리얼라이저
기타 흥미로운 글 :
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 처리 라이브러리에 대해 배웠습니다.
- https://docs.spring.io/spring-framework/docs/current/reference/html
- https://www.baeldung.com/java-json
'Java' 카테고리의 다른 글
Open Liberty 소개 (0) | 2021.03.19 |
---|---|
JBehave로 REST API 테스트 (0) | 2021.03.19 |
Spring Cloud 작업 소개 (0) | 2021.03.18 |
Spring 5 기능성 Bean 등록 (0) | 2021.03.18 |
Spring MVC의 세션 속성 (0) | 2021.03.18 |