- 제이슨, JavaScript Object Notation, JSON
- 웹과 컴퓨터 프로그램에서 용량이 적은 데이터를 교환하기 위해 데이터 객체를 속성·값의 쌍 형태로 표현하는 형식.
자바스크립트(JavaScript) 토대로 개발되었다. 여러 프로그래밍 언어에도 사용할 수 있어 독립형 언어이며 텍스트로 기술하여 사람도 쉽게 읽고 작성할 수 있다. 웹 브라우저와 웹 서버 간 비동기 통신, 웹 서버 간의 데이터 교환 등에 주로 사용된다. IETF RFC 7159(The JavaScript Object Notation(JSON) Data Interchange Format) 표준과 ECMA-404(The JSON Data Interchange Syntax) 표준으로 제정되어 있다.
JSON은 자바스크립트(ECMA-262 3rd edition, 1999)를 토대로 개발되었으며, 2000년대 미국의 컴퓨터 프로그램 개발자인 더글라스 크락포드(Douglas Crockford)가 확산시켰다. 특히, 웹 브라우저에서 비동기 처리에 사용되는 에이잭스(AJAX)가 데이터 교환 형식으로 JSON을 사용하면서 널리 알려졌다. AJAX가 기존 사용하던 XML 기반의 메시지 포맷은 시작 태그와 끝 태그를 포함하여 메시지 크기가 커지는 문제가 있었다. 이를 해결하기 위해 JSON으로 대체하였다. 대부분의 웹 기반 애플리케이션에서 데이터 교환 형식으로 XML 대신 JSON을 활용한다.
JSON은 자바스크립트(JavScript)의 구문 형식을 따르지만, C, C++, C#, 자바(Java), 파이선(Python) 등의 프로그램 언어와도 함께 사용되어 플랫폼과 프로그래밍 언어 면에서 독립적인 언어이다. 데이터 구조는 속성(name)과 값(value) 한 쌍으로 구성되며, “속성: 값” 형식으로 데이터 객체를 표현한다. 값(value)의 자료형으로 수(number), 문자열(string), 객체(object), 배열(array), 참/거짓(boolean), 또는 빈값(null)이 지원된다. 배열(array)은 대괄호([ ])로, 객체는 속성·값 쌍의 집합으로 중괄호({ })를 사용하여 표현하며, 객체 간의 구분은 쉼표(,)로 한다. 아래는 ‘paul’이라는 사람에 대한 정보(나이, 주소 등)를 JSON 형식으로 표현한 예시이다. ‘name’ 속성에 대한 값은 ‘paul’이며, ‘age' 속성에 대한 값은 ‘27’이다. 전화번호(phone)는 집(home) 전화와 휴대폰(cellphone) 객체 2개를 갖는 배열로 표현한다.
{
"name": "paul",
}
"age": 27,
"address": {
"Address": "11Ro Seoul Korea"},
"phone": [
{ "type": "home",
"number": "02-000-0000" },
{ "type": "cellphone",
"number": "010-0000-0000" },
],
"children": [],
"spouse": null