JSON(JavaScript Object Notation)은 서버에서 클라이언트가 사용하는 언어에 관계없이 통일된 데이터를 주고받을 수 있도록 문자열을 기반으로 한 데이터 교환 표준이다. JSON은 이름에서도 알 수 있듯이 JS를 기반으로 개발되었으나, 프로그래밍 언어와는 독립적이다. 이러한 JSON은 기존의 XML(eXtensible Markup Language) 형식을 대체하기 위해 개발되었다.
XML은 HTML과 같은 마크업 언어이나, HTML과는 달리 데이터의 저장 및 전달을 주목적으로 개발되었다. 따라서 XML은 태그 등의 사용으로 가독성이 떨어졌고, 실제 데이터에 비해 지나치게 큰 용량을 가지는 문제점이 있었다. 이러한 문제점을 해결하기 위해 JSON이 개발되었고, ECMA Script 5에서 스크립트 엔진의 기본 기능으로 내장된 이후 더욱 널리 사용되고 있다.
JSON의 문법은 기본적으로 JS의 객체 표기법을 가져와 사용한다. JSON의 작성 규칙은 다음과 같다.
JSON 데이터는 다음과 같이 이름과 값의 쌍으로 이루어진다 "데이터이름": 값
문자열은 큰따옴표만을 사용한다.
데이터의 값으로 올 수 있는 타입은 다음과 같다.
숫자(number)
문자열(string)
불리언(boolean)
객체(object)
배열(array)
NULL
JSON 데이터는 쉼표(,)로 나열된다.
객체(object)는 중괄호({})로 표현한다.
배열(array)은 대괄호([])로 표현한다.
키와 값 사이, 키-값 쌍 사이에는 공백이 있어서는 안된다.
이러한 규칙을 통해 작성된 JSON의 예시는 다음과 같다.
"{"sender":"lee","receiver":"kim","message":"How's it going?"}"
자바스크립트 내에서 JSON 데이터를 처리하기 위한 메소드는 다음과 같다.
JSON.stringify(value)
JSON.stringify()는 전달받은 자바스크립트 객체를 UTF-16으로 인코딩된 JSON 형식의 문자열로 반환한다.
JSON.parse(text)
JSON.parse() 메소드는 전달받은 문자열을 자바스크립트 객체로 변환하여 반환한다. 이때 해당 문자열은 반드시 유효한 JSON 형식의 문자열이어야 한다.