JSON은 JavaScript Object Notation의 약자로 XML 등과 같은 데이터 전송 방식 중 하나입니다.
JSON은 key 값과 value 값으로 이루어져 있습니다.
{
"id" : "byeolgori502",
"name" : "별고리"
}
위와 같이 id
와 "byeolgori502"
로 이루어져 있는 key-value 값, name
과 "별고리"
로 이루어진 key-value으로 구성된 JSON 데이터 처럼 JSON은 key 값과 value 값으로 구성되어 있습니다.
이 때, value로 올 수 있는 데이터 타입은 다음과 같습니다.
- 숫자(Number)
5, 0.7, -39
- 문자열(String)
"문자열"
- 불리언(Boolean)
true, false
- 객체(Object)
{}
- 배열(Array)
[]
- NULL
객체와 배열도 JSON 데이터로 포함될 수 있는 만큼, 밑의 예시 처럼 복잡한 데이터도 표현할 수 있습니다.
{
"Chapter" : {
{
"ep.1": [
{
"name": "AA",
"author": "James"
},
{
"name": "AB",
"author": "James"
},
]
"ep.2": [
{
"name": "BA",
"author": "kim"
},
{
"name": "BB",
"author": "kim"
},
]
}
}
}
앞서 말한대로, json은 데이터 전송 방식 중 하나이기 때문에 node.js와 같은 서버에서 클라이언트로 데이터를 보낼 때 사용하기도 합니다. node.js에서는 객체 형식의 데이터를 json 데이터로 변환하여 클라이언트로 전송합니다.
res.json()
node.js express에서 res.json으로 객체 데이터를 전송하게 되면, 자바스크립트 객체를 json 문자 데이터로 변환하여 클라이언트로 전송하게 됩니다. 이 때, res.send()를 통해서도 객체를 전달할 수 있지만 객체(Object)와 json은 차이가 있기 때문에 json 데이터를 보낼 때는 res.json() 사용하는 것이 좋습니다.
json 데이터를 객체 형태로 변환시켜줍니다.
let json = `{
"id" : "byeolgori502",
"name" : "별고리"
}`; // json data
let velog = JSON.parse(json);
console.log(velog.id)
// output: "byeolgori502"
객체를 JSON 문자열로 변환 시켜줍니다.
let velog = {
id : "byeolgori502",
name : "별고리"
};
let json = JSON.stringify(velog);
console.log(json)
// output: "{"id" : "byeolgori502","name" : "별고리"}"
참고 페이지: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON
수정할 부분이나 궁금하신게 있다면 언제나 질문해주세요!!!