데이터
•
데이터는 이론을 세우는 데 기초가 되는 사실, 또는 바탕이 되는 자료나 관찰, 실험, 조사 등으로 얻은 사실이나 자료를 의미한다.
•
데이터는 복잡하다. 때문에 데이터를 주고 받을 때에는 어떤 약속(포맷)을 정해서 주고 받아야 한다. 이러한 포멧에는 여러가지 종류가 있다.
개념
•
JSON은 Javascript Object Notation 의 약자로, 자바스크립트 객체 문법으로 구조화된 데이터를 표현하기 위한 표준 포맷이다.
•
key-value 형태로 나타내고, 중간에 콜론을 이용하여 구분한다. 객체는 중괄호{}로 감싸서 표시한다.
•
자바스크립트 객체 문법으로 되어있기 때문에 자바스크립트와의 호환성이 아주 좋다.
◦
JSON.parse(json_data)
타입
•
문자열, 숫자, boolean, object, 배열, null
//aboutme.json{ "name" : "halmuni", "age" : 20, "favorites" : ["sleeping", "coffee", "coding", "running"], "is_married" : false, "family" : [ { "relation" : "mother", "name" : "kim ok ja" }, { "relation" : "father", "name" : "hong gil dong" }, { "relation" : "sister", "name" : "hong duli" }, { "relation" : "brother", "name" : "hong ttochi" } ]}
JSON
복사
참조방법
•
위의 데이터를 참조한다고 가정해보자.
•
aboutme.json 을 javascript 객체로 파싱한 뒤,
•
aboutme.js 의 이름, 나이, 좋아하는 것 중 처음의 두 가지 요소, 결혼여부, 그리고 가족 중 엄마의 이름을 참조해보자.
//aboutme.jsconst me = {
"name" : "halmuni", "age" : 20, "favorites" : ["sleeping", "coffee", "coding", "running"], "is_married" : false, "family" : [
{
"relation" : "mother", "name" : "kim ok ja" }, {
"relation" : "father", "name" : "hong gil dong" }, {
"relation" : "sister", "name" : "hong duli" }, {
"relation" : "brother", "name" : "hong ttochi" }
]
}
//aboutme.json 참조하기console.log(me.name)
console.log(me.age)
console.log(me.favorites[0], me.favorites[1])
console.log(me.is_married)
console.log(me.family[0].name)
console.log(me.family[0]["name"])
JavaScript
복사
주의할 점
1.
오직 key-value 만 담을 수 있다. undefine나 매서드는 담을 수 없다.
2.
큰 따옴표만을 사용해야한다.
장점
1.
텍스트로 이루어져 있어서, 사람과 컴퓨터가 모두 읽고 쓰기가 쉽다.
2.
프로그래밍 언어와 플랫폼에 독립적이기 때문에 서로 다른 시스템 간에 객체를 교환하기에 좋다.
a.
프론트에서 javascript 를 쓰고, 백엔드에서 java 를 써도, json 타입으로 쉽게 상호 교환이 가능하다.
b.
때문에 주로 API나 config 파일에 활용된다.
3.
가볍다. 계속 닫힌 태그가 들어가는 xml 과 비교하여 가볍다.