web

Java에서 JSON 데이터를 다루는 방법 - Gson

달누 2024. 4. 21. 02:31

Gson라이브러리를 통해 Java에서 Json데이터를 다루는 방법을 알아보자

Member라는 객체에 이름과 나이 필드가 있을 때 이 객체를 json으로 직접 수정한다고 생각해 보자

{"name":"김땡땡", "age":28}

데이터양이 적은 짧은 내용의 경우에는 간단하게 작성이 가능하지만

크고 복잡한 형식을 하나하나 json으로 바꿔주는 건 매우 불편한 일이다

 

이 불편을 해결하기 위해 Gson라이브러리에 대해 알아보자


Gson이란?

 

 


Java에서 JSON을 파싱 하고, 생성하기 위해 사용되는 구글에서 개발한 오픈라이브러리

Java Object를 JSON 문자열로 변환할 수 있고, JSON 문자열을 Java Object로 변환할 수 있다.

 

 

 

의존성 주입


maven

<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.10.1</version>
</dependency>

 

gradle(kotlin)

// https://mvnrepository.com/artifact/com.google.code.gson/gson
implementation("com.google.code.gson:gson:2.10.1")

 

https://mvnrepository.com/artifact/com.google.code.gson/gson/2.10.1

 

 

사용방법


Java Object = > JSON

Member member = Member.builder
        .name("김땡땡")
        .age(28)
        .build();

//Gson객체 생성
Gson gson = new Gson();

//자바 객체를 json으로 수정
String json = gson.toJson(member);

log.info("JSON : {}",json);

//위의 결과 JSON : {"name":"김땡땡","age":28}

 

 

JSON => Java Object

// json 내부의 " 쌍따옴표는 그냥 기호로 인식하도록 하기 위해 쌍따옴표 앞에 \ 추가
// json 바깥 양 끝에 쌍 따옴표가 있기 때문에 내부의 쌍따옴표는 그냥 기호로만 인식되어야함

String json = "{\"name\":\"김땡땡\",\"age\":28}";

//Gson객체 생성
Gson gson = new Gson();

// json을 member객체에 담아 변환하겠다.
// key와 객체의 필드와 일치하는것에 담는다
Member member = gson.fromJson(json, Member.class);// gson.fromJson("JSON 문자열", 바꿀객체)

log.info("member : {}", member);

//위의 결과 member : Member{name = "김땡땡", age = "28"}

 

 


마무리

Java Object를 JSON으로, JSON을 Java Object로 변환할 수 있는 Gson 라이브러리에 대해 알아봤습니다.