데이터 형식 중 하나인 json에 대해 학습해봅시다😁
프론트엔드로 서버(백엔드)와 통신을 하게 되면, 무조건 보게 되는 개념이 JSON
입니다. 간단히 말하자면 HTML
과 같이 데이터를 표현하는 형식이라 볼 수 있는데, JSON 이외에도 많은 데이터를 표현하는 방법들이 존재합니다(예를 들어, xml이 대표적이겠네요!). 이처럼 필수로 알아야하고, 가장 많이 사용되고 있는 JSON에 대해 궁금증이 생겨 서칭하며 좀 더 많은 내용을 공부하고자 포스팅 합니다.
🍕 아니 이분 더글라스 크락포드님은
자바스크립트는 왜 그 모양일까
라는 책을 읽었을 때, 저자였던거 같은데 자바스크립트에서 엄청난 네임드 분이신가 봄
자바스크립트 객체 문법과 매우 유사하지만, 다른 프로그래밍 환경에서 제공 되어짐.
문자형 형태로 존재. 그래서 네트워크를 통해 전송할 때 아주 유용.
데이터에 엑세스하기 위해서는 원래의 데이터로 변환되어야 함(MDN에서 말하길 javascript에서 json 전역 객체를 통해 문자열과 JSON 객체의 상호변환을 지원함으로 별로 큰 문제
아니라고하네요! 제 경험상에도 그러합니다!)
🍕 문자열에서 네이티브 객체로 변환하는 것은 파싱(Parsing)이라고 합니다. 네트워크를 통해 전달할 수 있게 객체를 문자열로 변환하는 과정은 문자열화(Stringification)이라고 합니다.
{
"squadName": "Super hero squad",
"homeTown": "KKachiul City",
"formed": 2021,
"secretBase": "Super tower",
"active": true,
"members": [
{
"name": "Kim ye chan",
"age": 29,
"secretIdentity": "javascript gosu",
"powers": [
"Radiation resistance",
"Turning tiny",
"Radiation blast"
]
},
{
"name": "Madame Uppercut",
"age": 39,
"secretIdentity": "Jane Wilson",
"powers": [
"Million tonne punch",
"Damage resistance",
"Superhuman reflexes"
]
},
{
"name": "Eternal Flame",
"age": 1000000,
"secretIdentity": "Unknown",
"powers": [
"Immortality",
"Heat Immunity",
"Inferno",
"Teleportation",
"Interdimensional travel"
]
}
]
}
위처럼 여러 데이터 계층을 구축할 수 있습니다!
[
{
name: "바나나",
area: "아프리카",
},
{
name: "사과",
area: "유럽",
},
{
name: "딸기",
area: "한국",
} // 이처럼 배열로 JSON 형태를 표현할 수 있습니다.
]