📚 CS/그 외

JSON - 직렬화, 역직렬화

수댕ʕت̫͡ʔ 2024. 9. 23. 07:26

🙋‍♀️ JSON이란?

JSON(JavaScript Object Notation)은 Javascript 문법으로 구조화된 데이터 교환형식이다.  즉, 데이터를 구조화된 형태로 표현하고, 주로 데이터 교환에 사용되는 형식이다. 이름처럼 JavaScript 객체의 문법을 따르지만, 다양한 프로그래밍 언어에서 사용될 수 있는 독립적인 형식이다.

 

 

📑 JSON의 구조

JSON은 주로 Key-Value 형식으로 이루어져있다. 여기서 Key는 중복될 수 없다. Value는 배열, 객체, 숫자, 문자열 등 다양한 형태가 가능하다. 예를 들어, 단순 배열도 JSON으로 표현할 수 있다. 또한 재귀적인 구조도 지원한다.

 

JSON 데이터 타입

 

JSON은 JavaScript 객체와 유사하지만, 몇 가지 차이점이 있다. 예를 들어, undefined와 메서드는 JSON에 포함되지 않는다. JSON에서 지원하는 타입은 다음과 같다.

  • 숫자 (Number)
  • 문자열 (String)
  • 참/거짓 (Boolean)
  • 배열 (Array)
  • 객체 (Object)
  • null

 

✔ JSON의 독립성

 

JSON은 프로그래밍 언어에 독립적이다. 즉, JavaScript, Python 등 여러 언어가 업데이트되더라도 JSON 형식 자체는 변하지 않는다. 하지만 각 언어에서 JSON 데이터를 활용하려면 해당 언어에 맞는 형태로 변환이 필요하다.

 

예를 들어!

  • JavaScript : JSON 데이터를 사용하려면 JSON.parse()를 통해 JavaScript 객체로 변환해야한다.
  • Python : json.loads()를 사용하여 JSON 데이터를 딕셔너리로 변환해 사용할 수 있다.

 

🔊 JSON의 직렬화와 역직렬화

 

직렬화는 데이터를 바이트 형태로 변환하여 외부 시스템에서 사용할 수 있도록 하는 과정이다. 반대로 역직렬화는 바이트 형태로 변화된 데이터를 다시 원래의 데이터 형태로 복원하는 과정을 의미한다.

 

  • JSON.stringify() : 객체나 해시테이블, 딕셔너리 등을 JSON 문자열로 직렬화한다.
  • JSON.parse() : JSON 문자열을 객체나 해시테이블, 딕셔너리 등으로 역직렬화한다.