JavaScript Object Notation. (Javascript 객체 문법을 따르는 문자 기반의 데이터 포맷)
객체 리터럴과 매우 흡사하지만 순수한 텍스트로 구성된 데이터 형식이다.
데이터를 교환하거나 저장하기 위한 문법
// 예시
{
"squadName": "Super hero squad",
"homeTown": "Metro City",
"formed": 2016,
"secretBase": "Super tower",
"active": true,
"members": [
{
"name": "Molecule Man",
"age": 29,
"secretIdentity": "Dan Jukes",
"powers": [
"Radiation resistance",
"Turning tiny",
"Radiation blast"
]
},
{
"name": "Madame Uppercut",
"age": 39,
"secretIdentity": "Jane Wilson",
"powers": [
"Million tonne punch",
"Damage resistance",
"Superhuman reflexes"
]
},
]
}
자바스크립트 객체를 JSON 텍스트로 변환
이를 문자열화(Stringification)라고 한다.
let o = {
homeTown: "Metro City",
formed: 2016,
};
let strObject = JSON.stringify(o);
console.log(typeof strObject, strObject);
// string '{"homeTown": "Metro City", "formed": 2016}'
JSON 형식의 텍스트를 자바스크립트 객체로 변환
서버로부터 전송된 JSON 데이터는 문자열이다.
이 문자열을 객체화하여야 하는데 이를 역직렬화(Deserializing) 또는 파싱(Parsing)이라고 하며 이에 사용되는 내장함수이다.
// strObject '{"homeTown": "Metro City", "formed": 2016}'
let obj = JSON.parse(strObject);
console.log(typeof obj, obj);
// object { homeTown: "Metro City", formed: 2016 }
console.log(obj.formed)
// 2016