- 인터넷과 통신 네트워크에서 데이터를 전달할 때 사용되는 데이터 형식이다.
- JSON은 데이터를 표현하는 방식이다.
→ JSON 데이터 형식은 순수하게 데이터만 표현하는 형식이라 심플하고 가벼워서 최근 대부분의 송수신 간에 데이터 교환시 JSON 형식이 많이 채택되고 있다.
"name":"내 이름은 \"홍길동\"입니다."
- GSON은 JAVA에서 Json을 파싱하고, 생성하기 위해 사용되는 구글에서 개발한 오픈 소스이다.
- Java Object → Json 문자열 변환 OK
- Json 문자열 → Java Object 변환 OK
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.7</version>
</dependency>
dependencies {
implementation 'com.google.code.gson:gson:2.8.7'
}
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class CreateGson {
public static void main(String[] args) {
// new
Gson gson1 = new Gson();
// GsonBuilder
Gson gson2 = new GsonBuilder().create();
Gson gson3 = new GsonBuilder().setPrettyPrinting().create();
}
}
jsonObject.addProperty("name", "anna");
로 JsonObject 객체를 생성하여 이 객체에 프로퍼티 추가
import com.google.gson.Gson;
import com.google.gson.JsonObject;
public class GsonExample {
public static void main(String[] args) {
Gson gson = new Gson();
// Json key, value 추가
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name", "anna");
jsonObject.addProperty("id", 1);
// JsonObject를 Json 문자열로 변환
String jsonStr = gson.toJson(jsonObject);
// 생성된 Json 문자열 출력 S
ystem.out.println(jsonStr); // {"name":"anna","id":1}
}
}
gson.toJson(Object)
→ 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"}
}
}
gson.fromJson(Json문자열, Object.class)
→ Object 리턴
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]
}
}
https://sidepower.tistory.com/234
https://hianna.tistory.com/629