반응형
Gson
Gson은 구글에서 만든 직렬화(Serialization), 역직렬화(Deserialization)를 쉽고 간편하게 해주는 라이브러리다. 자바 객체와 Json 포맷 간의 변환하는 데 사용한다. 주로 Jackson 라이브러리와 많이 비교되기도 한다.
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>
사용 방법
User 클래스
다음 코드는 name과 age 필드를 가진 User 클래스로, 예제에 사용될 생성자와 getter, toString 메서드가 구현되어 있다.
public class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\\'' +
", age=" + age +
'}';
}
}
Object ↔ Json
public class GsonTest {
public static void main(String[] args) {
Gson gson = new Gson();
User user = new User("kim", 20);
// 직렬화
String objectToJson = gson.toJson(user);
System.out.println(objectToJson);
System.out.println();
// 역직렬화
String jsonString = "{\\"name\\":\\"park\\",\\"age\\":30}";
User jsonToObject = gson.fromJson(jsonString, User.class);
System.out.println(jsonToObject);
System.out.println(jsonToObject.getName());
System.out.println(jsonToObject.getAge());
}
}
// 출력
{"name":"kim","age":20}
User{name='park', age=30}
park
30
- Gson 라이브러리의 toJson 메서드를 통해 객체를 Json 형식의 문자열로 변환할 수 있다.
- Json 형식의 문자열을 fromJson 메서드를 통해 지정한 타입의 객체로 변환할 수 있다.
반응형
'언어(Language) > Java' 카테고리의 다른 글
[OOP] 단일 책임 원칙(SRP: Single Responsiblity Principle) 개념 및 예제 (0) | 2023.09.10 |
---|---|
[Java] 자바 로깅(Logging) - log4j, log4j2, slf4j, logback (0) | 2023.05.11 |
[Java] 자바 JSON 라이브러리 Jackson - ObjectMapper 사용법 (0) | 2023.05.09 |
[Java] 객체 null 체크 - Objects.isNull() vs == 연산자 (0) | 2023.05.04 |
[Java] 자바 큐(Queue) 인터페이스 정리 (0) | 2023.02.22 |