위키 백과에 따르면
JSON은 키와 값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽는 텍스트를 사용하는 개방형 표준 포맷이다.
JSON을 위와 같이 정의하고 있다.
JSON은 자바스크립트로부터 파생되었지만, 다른 프로그래밍 언어에서도 사용이 가능한 독립형 데이터 포맷이다.
잠깐 자바스크립트 코드를 먼저 살펴보도록 하자.
const member = { name: 'Yeongsan Son', height: 170, weight: 68, hobbies: ['Soccer', 'Programming'] };
자바스크립트에서는 객체를 생성할 수 있는 여러 방법이 있다.
위와 같이 객체 리터럴({}) 안에 프로퍼티의 이름과 값을 순서대로 나열해서 생성한다.
객체 리터럴은 문법에 유연함이 있는데 각 프로퍼티의 이름에 큰따옴표를 아래와 같이 붙여도 붙이지 않아도 괜찮다.
const member = { "name": 'Yeongsan Son', "height": 170, "weight": 68, "hobbies": ['Soccer', 'Programming'] };
하지만 JSON의 경우에는 프로퍼티의 이름에 반드시 큰따옴표를 붙여줘야 한다.
큰따옴표를 사용하지 않으면 JSON을 처리하려고 할 때 에러가 발생한다.
{ "name":"Yeongsan Son", "height":170, "weight":68, "hobbies":['Soccer', 'Programming'] }
const member = { "name": 'Yeongsan Son', "height": 170, "weight": 68, "hobbies": ['Soccer', 'Programming'] };
자바스크립트에서는 키의 값이 문자열인 경우 작은따옴표를 사용해도 큰따옴표를 사용해도 큰 문제가 없다.
하지만 JSON에서는 문자열 값을 항상 큰따옴표를 사용해야 한다.
{ "name":"Yeongsan Son", "height":170, "weight":68, "hobbies":["Soccer", "Programming"] }