Post

CS - Json, 직렬화와 역직렬화

CS - Json, 직렬화와 역직렬화

API 반환 형태, 설정 파일 등등 다양한 방식으로 널리 사용되는 데이터 교환 방식 중 하나인 Json에 대해 알아보자.

Json이란?

Json은 JavaScript Object Notation의 약자로, JavaScript(이하 Js)의 객체 문법으로 구성되어 구조화된 데이터 교환 형식을 뜻한다.

교환 형식이란 서로 다른 시스템에서 데이터를 주고 받을 때 맞춰야하는 규격이라고 생각하면 된다.

Js의 객체 문법

1
2
3
4
const person = {
  name: "Sang",
  age: 20
};

위 코드처럼 Json 또한 key-value 형태로 데이터를 표현할 수 있다.

Json 데이터 표현

1
2
3
4
{
  "name": "Sang",
  "age": 20
}

또한, Json은 여러 플랫폼으로부터 독립적이다.
즉, 특정 언어의 버전이 업데이트 된다고 하더라도, Json의 형식에는 아무런 영향을 끼치지 않는다.

Json에 사용 가능한 타입

Json은 Js의 객체와 거의 유사하지만, 완전히 같은 것은 아니다.

즉, undefined, method와 같이 Js에서는 사용이 가능하나 Json에서는 사용이 불가능하다.

사용 가능한 타입은 아래와 같다

  • number: 수
  • string: 문자열
  • boolean: 참/거짓
  • array: 배열
  • object: 객체(재귀적 사용)
  • null

직렬화와 역직렬화

직렬화: 내부 시스템에서 사용되는 데이터(Js의 객체, Python의 dictionary 등)를 외부 시스템에서 사용할 수 있도록 Json 형식으로 변환하는 것을 의미한다.

예시

1
2
3
4
5
6
const data = {
  name: "Sanghoon",
  age: 20
};

const json = JSON.stringify(data);

역직렬화: 외부 시스템에서 넘어온 json 형식의 데이터를 내부 시스템에 맞는 타입으로 변환하는 것을 의미한다.

예시

1
2
3
const json = '{"name":"Sanghoon","age":20}';

const data = JSON.parse(json);
This post is licensed under CC BY 4.0 by the author.