Gson 활용 | 문자열을 받은 후 객체(DTO)로 변환해 처리하기 - 역직렬화 (Gradle)

Yunny.Log ·2022년 6월 24일
0

Spring Boot

목록 보기
69/80
post-thumbnail

개요

  • 문자열로 받은 아이를 스프링부트에서 객체로 변환해서 DTO 로 활용할 사항이 생겼다.
  • 이런 기능을 제공해주는 것이 gson

build.gradle

dependencies 에

implementation group: 'com.google.code.gson', name: 'gson', version: '2.9.0'

를 추가해주자

Gson으로 역직렬화 하는 법


//1) 
String jsonInput = "{\"imdbId\":\"tt0472043\",\"actors\":" +
  "[{\"imdbId\":\"nm2199632\",\"dateOfBirth\":\"1982-09-21T12:00:00+01:00\"," +
  "\"filmography\":[\"Apocalypto\",\"Beatdown\",\"Wind Walkers\"]}]}";

//2) 
Movie outputMovie = 
	// 3) 
	new Gson().fromJson(jsonInput, Movie.class);
  • 1) 객체로 만들 문자열을 String 으로 데려오기
  • 2) 만들 객체 & 인스턴스명 선언
  • 3) Gson 인스턴스 생성
  • 4) fromJson(묹자열, 문자열을 바꿀 객체.class)

my code

1) 입력받을 dto 정의

public class CustomDto {

    private String number;
    private String name;

2)


		// 1) Gson 인스턴스 생성 
     Gson gson = new Gson();
     
     // 2) 객체로 바꿀 문자열 데리고 오기 
     String json = design.getContent();
     
     // 3) 내가 원하는 객체로 fromJson(문자열, 바꿀객체.class)
     DesignContentDto designContentDto = 
     	gson.fromJson(json, DesignContentDto.class);
         

Gson과 비슷한 Jackson 도 있다

  • 둘다 직렬화 (자바 객체 -> json ) 와 역직렬화 (json -> 자바 객체) 를 제공해준다.

    Both Gson and Jackson are good options for serializing/deserializing JSON data, simple to use and well documented.

Advantages of Gson:

  • Simplicity of toJson/fromJson in the simple cases
  • For deserialization, do not need access to the Java entities

Advantages of Jackson:

  • Built into all JAX-RS (Jersey, Apache CXF, RESTEasy, Restlet), and Spring framework
  • Extensive annotation support

출처

코드 및 내용 출처 :
https://www.baeldung.com/jackson-vs-gson

마무리

  • 세상이 참 좋다, 어떻게 이리 알아서 json 을 객체로 변환해주는 것일까나~ 감사하며 공부해야지
  • tmi 인데 나만 잭슨(Jackson)하면 이거 생각나나 ? ㅎㅋㅎㅋ
    (출처 mbc 드라마 , 그녀는 예뻤다)
    중학교 때 시험끝나고 하루만에 몰아봤던 기억이 있는 드라마지~,,, ost가 참 좋았는데(제목 : 모르나봐) 오늘 밤에 들으면서 자야겠다.

0개의 댓글