[Server] JSON이란?

HAEN·2023년 1월 27일
0

1. JSON이란?

JSON(JavaScript Object Notation): 자바스크립트 오브젝트 노테이션의 줄임말로, Key-value의 형태로 오브젝트를 표현한 문자열. 자바스크립트에서 오브젝트를 생성하는 형식과 유사함


2. 오브젝트를 문자열로 표현해야 하는 이유

public class User {
	String name;
    int age;
}

다음과 같이 자바 User라는 자바 클래스가 있다고 가정할 때
이 클래스의 오브젝트를 생성하는 코드는 다음과 같음

User user = new User("홍길동", 23);

인터넷을 통해 이 User 오브젝트를 전송하려고 할 때, 어떤 애플리케이션이든 이해할 수 있는 형태로 오브젝트를 변환해야 함

저장 또는 전송을 위해 메모리상의 오브젝트를 다른 형태로 변환하는 작업을 직렬화(serialization)라고 하며
그 반대 작업을 역직렬화(deserialization)이라고 함

User 오브젝트를 JSON으로 변환하면 다음과 같음
자바의 인스턴스 변수의 이름은 Key가 되고, 변수에 들어간 값은 Value가 됨

{
  "name":"홍길동",
  "age":23
}

3. JSON에서 자료형 표현 방법

  • Boolean: true/false
  • 숫자: 쌍따옴표 없는 숫자
    ex)10, 52.2
  • 문자열: 쌍따옴표로 감싼 형태
    ex) "abc"
  • 오브젝트: 소괄호로 감싼 형태
    ex) {"name":"홍길동"}
  • 배열: 대괄호로 감싼 형태
    ex) ["abc","def"]
{
	"mySting":"hello",	// 문자열
    "number": 10,		// 숫자
    "myStringArray": [	// 문자열 배열
    	"abc",
        "def"
    ],
    "myObject": {		// 오브젝트
    	"name":"obj"
    }
}

4. JSON을 이용한 통신

애플리케이션1이 오브젝트를 JSON 형태의 문자열로 변환한 후 HTTP 요청의 바디 부분에 변환한 JSON을 넣어 요청을 전송하고, 요청을 받은 애플리케이션2는 HTTP 요청의 바디 부분에서 JSON을 꺼내 오브젝트로 변환하여 사용할 수 있음

변환 과정은 라이브러리와 프레임워크가 대신 수행함



profile
핸수

0개의 댓글