JSON(JavaScript Object Notation): 자바스크립트 오브젝트 노테이션의 줄임말로, Key-value의 형태로 오브젝트를 표현한 문자열. 자바스크립트에서 오브젝트를 생성하는 형식과 유사함
public class User {
String name;
int age;
}
다음과 같이 자바 User라는 자바 클래스가 있다고 가정할 때
이 클래스의 오브젝트를 생성하는 코드는 다음과 같음
User user = new User("홍길동", 23);
인터넷을 통해 이 User 오브젝트를 전송하려고 할 때, 어떤 애플리케이션이든 이해할 수 있는 형태로 오브젝트를 변환해야 함
저장 또는 전송을 위해 메모리상의 오브젝트를 다른 형태로 변환하는 작업을 직렬화(serialization)라고 하며
그 반대 작업을 역직렬화(deserialization)이라고 함
User 오브젝트를 JSON으로 변환하면 다음과 같음
자바의 인스턴스 변수의 이름은 Key가 되고, 변수에 들어간 값은 Value가 됨
{
"name":"홍길동",
"age":23
}
{
"mySting":"hello", // 문자열
"number": 10, // 숫자
"myStringArray": [ // 문자열 배열
"abc",
"def"
],
"myObject": { // 오브젝트
"name":"obj"
}
}
애플리케이션1이 오브젝트를 JSON 형태의 문자열로 변환한 후 HTTP 요청의 바디 부분에 변환한 JSON을 넣어 요청을 전송하고, 요청을 받은 애플리케이션2는 HTTP 요청의 바디 부분에서 JSON을 꺼내 오브젝트로 변환하여 사용할 수 있음
변환 과정은 라이브러리와 프레임워크가 대신 수행함
