본문 바로가기
코딩

JSON 이란?

by 눈표범  2021. 7. 13.

JSON(제이슨[1], JavaScript Object Notation)은 속성-값 쌍( attribute–value pairs and array data types (or any other serializable value)) 또는 "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. 비동기 브라우저/서버 통신 (AJAX)을 위해, 넓게는 XML(AJAX가 사용)을 대체하는 주요 데이터 포맷이다. 특히, 인터넷에서 자료를 주고 받을 때 그 자료를 표현하는 방법으로 알려져 있다. 자료의 종류에 큰 제한은 없으며, 특히 컴퓨터 프로그램 변수값을 표현하는 데 적합하다.

본래는 자바스크립트 언어로부터 파생되어 자바스크립트의 구문 형식을 따르지만 언어 독립형 데이터 포맷이다. 즉, 프로그래밍 언어 플랫폼에 독립적이므로, 구문 분석 및 JSON 데이터 생성을 위한 코드는 C, C++, C#, 자바, 자바스크립트, , 파이썬 등 수많은 프로그래밍 언어에서 쉽게 이용할 수 있다.

 

JSON의 공식 인터넷 미디어 타입은 application/json이며, JSON의 파일 확장자는 .json이다.

 

역사

JSON은 2000년대 초에 널리 사용된 방식인 플래시 자바 애플릿 등의 브라우저 플러그인을 사용하지 않는 무상태, 실시간 서버 대 브라우저 통신 프로토콜의 요구에 의거하여 성장하였다.

 

 

자료형과 문법

기본 자료형[편집]

JSON의 기본 자료형은 다음과 같다:

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

 

예제[편집]

다음은 한 사람에 관한 정보를 갖는 JSON 객체이다.

키-값 쌍(이름:값)의 패턴으로 표현된다.

{ "이름": "홍길동", "나이": 25, "성별": "여", "주소": "서울특별시 양천구 목동", "특기": ["농구", "도술"], "가족관계": {"#": 2, "아버지": "홍판서", "어머니": "춘섬"}, "회사": "경기 수원시 팔달구 우만동" }

 

 

장점[편집]

  • JSON은 텍스트로 이루어져 있으므로, 사람과 기계 모두 읽고 쓰기 쉽다.
  • 프로그래밍 언어 플랫폼에 독립적이므로, 서로 다른 시스템간에 객체를 교환하기에 좋다.
  • 자바스크립트의 문법을 채용했기 때문에, 자바스크립트에서 eval 명령으로 곧바로 사용할 수 있다. 이런 특성은 자바스크립트를 자주 사용하는 웹 환경에서 유리하다. 그러나 실질적으로 eval 명령을 사용하면 외부에서 악성 코드가 유입될 수 있다. 모질라 파이어폭스 3.5, 인터넷 익스플로러 8, 오페라 10.5, 사파리, 구글 크롬 등 대부분의 최신 웹 브라우저는 JSON 전용 파서 기능을 내장하고 있으므로 이런 기능을 사용하는 것이 더 안전할 뿐만 아니라 빠른 방법이다.

 

출처: https://ko.wikipedia.org/wiki/JSON

'코딩' 카테고리의 다른 글

데이터 구조  (0) 2021.07.13
Python 의 List 와 Tuple  (0) 2021.07.13
디렉토리(directory)  (0) 2021.07.11
join()  (0) 2021.07.10
enumerate 함수, range 함수  (0) 2021.07.10

댓글