키(key)와 값(value)으로 구성됨. {key : value}
이미 존재하는 키를 중복선언하면 나중에 선언한 해당키에 대응한 값이 덮어쓰이게 됨.
데이터는 추상적인 아이디어에서부터 시작해 구체적인 측정에 이르기까지 다양한 의미로 쓰인다. 실험, 조사, 관찰 등으로 부터 얻은 사실이나 자료 등을 의미.
객체, 해시테이블, 딕셔너리 등로 변환되어 쓰임
ex) json in javascript = javascript object,
json in python = dict
[1,2,3,4,5] -> 이것도 json
"King Sejong" -> 이것도 json
하지만 위의 형태는 잘 쓰이지 않고, 보통은 json object(위에서 살펴본 {key:value} 형태)나 json array 형태로 쓰인다.
이름 : 코코
좋아하는 것 : 달리기, 바나나
달리기 : 10KM, 마라톤
바나나 : 초록색
{
"name" : "코코",
"like" : {
"running" : {
"distance" : "10km",
"type" : "marathon"
},
"바나나" : {
"color" : "초록색"
}
}
javascript object와 유사하지만 undefined, 메서드 등을 포함하지 않는다.
직렬화란 외부의 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터를 변환하는 기술이며 역직렬화는 반대를 의미
JSON은 프로그래밍 언어와 프레임워크 등에 독립적이므로, 서로 다른 시스템간에 데이터를 교환하기에 좋다. 주로 API의 반환형태, 시스템을 구성하는 설정파일에 활용된다.