728x90
GSON 라이브러리란?
- Gson은 Java에서 Json을 파싱하고, 생성하기 위해 사용되는 구글에서 개발한 오픈소스입니다.
- Java Object를 Json 문자열로 변환할 수 있고, Json 문자열을 Java Object로 변환할 수 있습니다.
Gson 라이브러리 추가하기
Maven 에 설정 추가
JSON 파싱에 사용할 json-simple 라이브러리를 추가하기 위해 pom.xml 파일에 아래와 같이 dependency를 추가합니다.
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.7</version>
</dependency>
Object -> Json 변환하기
Student 클래스
public class Student {
private int id;
private String name;
public Student(int id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + "]";
}
}
id와 name, 이렇게 2개의 field를 가지고,
이 2개의 field의 값을 세팅하는 Constructor를 가지고 있습니다.
Student 클래스를 Json 문자열로 변환
import com.google.gson.Gson;
public class ObjectToJson {
public static void main(String[] args) {
// Student 객체 생성
Student student = new Student(1, "Anna");
// Gson 객체 생성
Gson gson = new Gson();
// Student 객체 -> Json 문자열
String studentJson = gson.toJson(student);
// Json 문자열 출력
System.out.println(studentJson); // {"id":1,"name":"Anna"}
}
}
- String studentJson = gson.toJson(student);
- student 객체를 Json 문자열로 변환하였습니다.
- Student 클래스는 id, name 이렇게 2개의 field를 가지고 있고,
- student 객체는 id는 1, name은 "Anna"라는 값을 가지고 있습니다.
- 이를 이용하여, Json 객체가 생성되었습니다.
Json -> Object 변환하기
Student 클래스
public class Student {
private int id;
private String name;
public Student(int id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + "]";
}
}
Json 문자열을 Student 클래스로 변환
import com.google.gson.Gson;
public class JsonToObject {
public static void main(String[] args) {
// Json 문자열
String jsonStr = "{\"id\":1,\"name\":\"Anna\"}";
// Gson 객체 생성
Gson gson = new Gson();
// Json 문자열 -> Student 객체
Student student = gson.fromJson(jsonStr, Student.class);
// Student 객체 toString() 출력
System.out.println(student); // Student [id=1, name=Anna]
}
}
Student student = gson.fromJson(jsonStr, Student.class);
Json 문자열을 Student 클래스로 변환하였습니다.
출처: https://hianna.tistory.com/629
728x90
'JAVA' 카테고리의 다른 글
람다식 중간연산 정리 (map, filter, reduce, collect) (0) | 2022.10.19 |
---|---|
map() 과 flatMap() 의 차이 (2) | 2022.09.22 |
Java 엑셀 파일(Excel) 다운로드 (0) | 2022.09.05 |
JAVA stream filter 정리 (0) | 2022.09.01 |
HashMap 사용 방법 및 예제 (0) | 2022.08.16 |