정의
JSON(JavaScript Object Notation)은 속성-값 쌍, 배열 자료형 또는 모든 시리얼화 가능한 값 또는 '키-값 쌍'으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다.
=> JSON은 단순히 데이터를 표시하는 표현 방법일 뿐, 다른 예로는 xml 이 있다.
배열(Array)
배열은 대괄호[]로 나타낸다. 배열의 각 요소는 기본 자료형이거나 배열, 객체이다. 각 요소들은 쉼표(,)로 구별된다. 각 요소가 나타나는 순서에 의미가 있다.
[10, {"v": 20}, [30, "마흔"]]
객체(Object)
객체는 이름/값 쌍의 집합으로, 중괄호{}를 사용한다. 이름은 문자열이기 때문에 반드시 따옴표를 하며, 값은 기본 자료형이다. 각 쌍들은 쉼표(,)로 구별된다. 각 쌍이 나오는 순서는 의미가 없다.
{"name2": 50, "name3": "값3", "name1": true}
JSON 메시지 단위는 배열이나 객체이다. 위의 두 예는 JSON 메시지가 될 수 있다.
예제
다음은 한 사람에 관한 정보를 갖는 JSON 객체이다.
키-값 쌍(이름:값)의 패턴으로 표현된다.
{
"이름": "홍길동",
"나이": 25,
"성별": "여",
"주소": "서울특별시 양천구 목동",
"특기": ["농구", "도술"],
"가족관계": {"#": 2, "아버지": "홍판서", "어머니": "춘섬"},
"회사": "경기 수원시 팔달구 우만동"
}
JSON 형식 파싱하기
var jsonTxt = '{ "age": 20, "name": "rose" }'; // JSON 형식의 문자열
var jsonParse = JSON.parse(jsonTxt);
var jsonStringify = JSON.stringify(jsonParse);
console.log(jsonParse);
{age: 20, name: 'rose'}
console.log(jsonStringify);
{"age":20, "name":"rose"}