Java에서 Json을 다루다 Springboot 사용시 포함되어있는 Jackson의 ObjectMapper를 사용해왔음.
그런데 Gson이라는 다른 라이브러리도 있다는 것을 알게되었고, 둘을 한번 비교해 봄.
스프링부트 사용시 별도의 설정 없이 사용하기 편한 Jackson
Google에서 만든 Json data 처리기인 오픈소스 Gson
Gradle:
dependencies {
implementation 'com.google.code.gson:gson:2.10.1'
}
Maven:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
사용법
Gson
String serializedMovie = new Gson().toJson(movie);
Movie outputMovie = new Gson().fromJson(jsonInput, Movie.class);
outputMovie.toString();
Jackson
ObjectMapper mapper = new ObjectMapper();
String jsonResult = mapper.writeValueAsString(movie);
ObjectMapper mapper = new ObjectMapper();
Movie movie = mapper.readValue(jsonInput, Movie.class);
gson은 toJson , fromJson 문법을 사용하는듯. 좀더 직관적이고 알아보기 쉽다고 느낌
Gson의 이점
Simplicity of toJson/fromJson in the simple cases
For deserialization, do not need access to the Java entities
Jackson의 장점
Built into all JAX-RS (Jersey, Apache CXF, RESTEasy, Restlet), and Spring framework
Extensive annotation support