본문 바로가기
기타

JSON이란?

by 코딩히어로 2021. 12. 16.
728x90

JSON은 JavaScript Object Notation의 약자로 통신에 관련된 개발을 진행하다 보면

 

굉장히 많이 접하게 되는 단어입니다.

 

JSON은 말 그대로 데이터를 저장하거나 전송할 때 많이 사용되는 경량 교환 형식으로,

 

그 자체로는 데이터 포맷일 뿐이며 어떠한 통신 방법도 아니고 그렇다고 문법도 아닌

 

단순하게 데이터를 표시하기 위한 표현 방법을 의미합니다.

 

특히 인터넷상에서 데이터를 주고받을 때 그 자료를 표현하는 방법으로 많이 알려져 있습니다.

 

 

 

1) JSON 유래


JSON은 2000년대 초에 널리 사용되던 방식인 플래시나 자바 애플릿 등의

브라우저 플러그인을 사용하지 않는 무상태,실시간 서버 브라우저 통신 프로토콜에 의해 성장했습니다.

 

JSON.org 웹사이트는 2002년 런칭되어 2005년 12월 야후를 통해 JSON으로 웹 서비스를 제공하기 시작합니다.

 

JSON은 자바스크립트 스크립트 언어의 서브셋에 기반을 두며, 자바스크립트와 함께 많이 사용되었으나

그 자체로 언어 독립적인 데이터 포맷이기도 합니다.

 

JSON 데이터의 구문 분석 및 생성을 위한 코드는 수많은 오픈소스에서 쉽게 찾아볼 수 있습니다.

 

 

 

2) 특징


서버와 클라이언트 간의 교류에서 일반적으로 많이 사용됩니다.

대게 curl 및 기타 라이브러리를 통해 통신하거나 많이들 알고있는 FCM 메시지 전송 포맷도

JSON을 통해 data를 정의합니다.

 

JSON은 자바스크립트 객체 표기법과 아주 유사하며 자바스크립트를 이용하여 JSON 형식의

문서를 쉽게 자바스크립트 객체로 변환할 수 있습니다.

하지만 JSON은 자바스크립트 문법과 유사하다 하더라도 그 자체는 텍스트 형식일 뿐입니다.

 

텍스트 형식의 문서이기 때문에 다른 프로그래밍 언어에 제약을 받지 않고

쉽게 만들 수 있다는 점이 강점입니다.

 

 

3) 자료형


  • 수(Number)
  • 문자열 : 0개 이상의 유니코드 문자들의 연속. 문자열은 큰 따옴표(")로 구분하며 역슬래시 이스케이프 문법을 지원한다.
  • 참/거짓: true 또는 false 값
  • 배열: 0 이상의 임의의 종류의 값으로 이루어진 순서가 있는 리스트, 대괄호로 나타내며 요소는 쉼표로 구분한다.
  • 객체(Object): 순서가 없는 이름/값 쌍의 집합으로, 이름(키)이 문자열이다.
  • null: 빈 값으로, null을 사용한다.

 

 

4) 문법


기본 자료형의 수는 다음과 같이 표현된다. C나 자바에서의 8진수와 16진수를 표현하는 방법은 지원되지 않는다.

 

1. 정수

75 1324 -102 -221

 

2. 실수(고정 소수점)

3.12  -2.758

 

3. 실수(부동 소수점)

1e4 2.5 e134 

 

 

항상 큰 따옴표(")로 묶어야 하며, 그 안에는 유니코드 문자들이 나열된다. 유니코드 중 역슬래시(\)와 큰따옴표(")는 바로 사용할 수 없다. 역슬래시는 제어 문자를 표현하기 위해 사용되며 다음과 같은 의미를 지닌다.

 

\b 백스페이스

\f 폼 피드

\n 개행

\r 캐리지 리턴

\t 탭\" 따옴표

\/ 슬래시

\\ 역슬래시

\uHHHH 16진수 네 자리로 되어 있는 유니코드 문자

 

배열은 대괄호[]로 나타낸다. 배열의 각 요소는 기본 자료형이거나 배열, 객체이다. 각 요소들은 쉼표(,)로 구별된다. 각 요소가 나타나는 순서에 의미가 있다.

 

[30, {"a":21}, [31, "서른하나"]]

 

객체는 이름/값 쌍의 집합으로, 중괄호{}를 사용한다. 이름은 문자열이기 때문에 반드시 따옴표를 하며, 값은 기본 자료형이다. 각 쌍들은 쉼표(,)로 구별된다. 각 쌍이 나오는 순서는 의미가 없다.

 

{"test":123, "test 1": "123", "test2": false}

728x90
반응형

'기타' 카테고리의 다른 글

Bluetooth RSSI 개념  (29) 2022.01.12
디자인 PSD파일이란?  (2) 2022.01.04
비트코인이란?  (6) 2022.01.03
nft란?  (0) 2021.11.18
메타버스란?  (0) 2021.11.18

댓글