JSON(Javascript Object Notation)
- "키:값" 쌍으로 이루어진 데이터 객체를 전달하기 위해 사람이 읽을 수 있는 텍스트를 사용하는 포맷이다.
- 본래 자바스크립트 언어로부터 파생되어 자바스크립트 구문 형식을 따르지만 플랫폼과 언어 독립형 데이터 형식이다.
- 프로그래밍 언어나 플랫폼에 독립적이므로 C, 자바, 파이썬 등에서 JSON 데이터 생성을 위한 코드를 각자 가지고 있다.
- JS를 제외한 언어는 라이브러리를 사용해야하는 경우가 많다.
직렬화(Serialize)
- 데이터를 전송하거나 저장할 때 바이트 문자열이어야 하기 때문에 객체들을 문자열로 바꾸어 주는 것이다.
- Object -> String 문자열
역직렬화(Deserialize)
- 데이터가 모두 전송된 이후, 수신측에서 다시 문자열을 기존의 객체로 회복시켜주는 것이다.
- 역직렬화를 위해서는 기본생성자가 반드시 필요하다
- String 문자열 -> Object
@Getter // Object -> String 문자열로 바꿀 때 필요
class Car {
private String name;
private String color;
public Car(String name, String color) {
this.name = name;
this.color = color;
}
public Car() { // String 문자열 => Object로 바꿀 때 필요
this.name = null;
this.color = null;
}
}
ObjectMapper mapper = new ObjectMapper();
Car car = new Car("K5", "gray");
String text = mapper.WriteValueAsString(car); //{"name":"K5","color":"gray"}
Car carObject = mapper.readValue(text, Car.class); //Car{name='k5',color='gary'}