블로그

JSON, JSON 문자열 본문

개발자 준비과정/Javascript, React

JSON, JSON 문자열

하늘바람a 2024. 7. 5. 09:49

JSON 문자열

 

  • 구조화된 데이터를 표현하는 특정 형식을 가진 문자열
// JSON 문자열 예시
{
    "name": "John",
    "age": 30,
    "isStudent": false
}

 

 

구문 규칙

 

  • 키-값 쌍으로 구성
  • 키(property)는 항상 큰따옴표(")로 감싸야 한다.
  • 값(value)은 특정 형식(문자열,숫자,객체,배열,true,false,null)을 따라야 한다.

 

데이터 타입

 

  • JSON은 숫자, 문자열, 객체, 배열, 불리언, null 타입을 지원
  • 일반 문자열은 이러한 타입 구분이 없다.

 

JSON

 

 

정의

 

  • JavaScript Object Notation, 경량의 데이터 교환 형식
  • 사람이 읽고 쓸 수 있을 뿐 아니라 기계에서도 쉽게 분석하고 생성할 수 있도록 설계되었다.
  • JavaScript 언어를 기반으로 하지만 언어 독립적으로 사용될 수 있다.

 

역할

 

  • 데이터 교환 : 서버와 클라이언트 간 데이터 교환에 사용된다.
  • 구조화된 데이터 표현 : 구조화된 데이터를 저장하고 표현하기 위한 용도로 사용된다.
    • 이는 데이터베이스파일 시스템데이터 전송 등 다양한 환경에서 유용하다.

 

JSON의 종류

 

  • 기본적으로 객체와 배열의 두 가지 구조를 가진다.
    • 객체 : {} 중괄호로 감싸며, 키-값 쌍으로 구성된다.
    • 배열 : [] 대괄호로 감싸며, 값의 목록으로 구성된다.
// 객체(Object)
{
    "name": "John",
    "age": 30,
    "isStudent": false
}

// 배열(Array)
[
    "apple",
    "banana",
    "cherry"
]

 

 

JSON 데이터를 다루는 방법

 

  • 직렬화 (Serialization), 인코딩(Encoding) : 객체 -> 문자열 또는 바이너리 형식으로 변환하는 과정
    • 변환된 데이터는 파일로 저장하거나 네트워크를 통해 전송할 수 있다.
  • 역직렬화 (Deserialization), 디코딩(Decoding)  : 문자열 또는 바이너리 데이터를 다시 객체로 변환하는 과정.
    • 네트워크를 통해 수신한 데이터나 파일로부터 데이터를 읽어들일 때 사용됩니다.
  • JSON.stringify(): 객체를 JSON 문자열로 변환하는 메서드. 즉, JSON 직렬화를 수행한다.
  • JSON.parse(): JSON 문자열을 객체로 변환하는 메서드. 즉, JSON 역직렬화를 수행한다.

 

 

직렬화란?

 

직렬화의 정확한 의미

직렬화는 객체를 특정 형식(문자열 또는 바이너리)으로 변환하는 과정이다. JSON은 그 중 하나의 형식일 뿐이다.

JSON과 직렬화의 관계

  • JSON 직렬화: 객체를 JSON 형식의 문자열로 변환하는 것을 말한다. JSON 문자열은 사람이 읽을 수 있는 텍스트 형식으로 저장된다.
  • 일반적인 직렬화: 객체를 JSON뿐만 아니라 XML, Protocol Buffers, BSON 등 다양한 형식으로 직렬화할 수 있다.

 

바이너리 데이터 처리

 

  • JSON 자체는 텍스트 기반의 형식이며, 바이너리 데이터를 직접적으로 지원하지 않는다.
  • 다만, 바이너리 데이터를 JSON에 포함시키기 위해 Base64와 같은 인코딩 방법을 사용하여 문자열로 변환할 수 있다.