JSON
Json ์ JavaScript Object Notation ์ด๋ผ๋ ์๋ฏธ์ ์ถ์ฝ์ด๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ฑฐ๋ ์ ์ฅํ ๋ ์ฌ์ฉ๋๋ ๊ฒฝ๋ ๋ฐ์ดํฐ ํ์์ด๋ค.
๋ณดํต JSON์ REST API ํต์ ํ ๋ ์ฃผ๊ณ ๋ฐ๋ Request, Response Body ์ ์ฌ์ฉํ๋ค.
์ฆ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ์ ๊ต๋ฅ์์ ๋ง์ด ์ฌ์ฉ๋๋ค.
ํด๋ผ์ด์ธํธ๋ ์๋ฒ์๊ฒ ์ฒ๋ฆฌํด์ผํ ๋ด์ฉ์ JSON ๋ฐ์ดํฐ๋ก ๋ณํํ๊ณ ์ ์กํ๋ค.
๊ทธ๋ผ ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์จ JSON ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ์คํ์ ๋ง๊ฒ ์ฌ๋ณํํ๋ค.
์ฌ๊ธฐ์ ๋ง ํ๋ ์๋ฒ์ ์ํ์ด๋ Java๋ก ๊ตฌ์ฑ๋ ์๋ฒ์ธ์ง, Python์ผ๋ก ๊ตฌ์ฑ๋ ์๋ฒ์ธ์ง๋ฅผ ๋ปํ๋ค.
์๋ JSON์ด๋ผ๋ ๊ฒ์ JavaScript์์ ํ์ํ ํ์์ด๋ผ Js์ ๊ฐ์ฒด์ ๋งค์ฐ ๋น์ทํ๋ค.
Javascript Object VS JSON
const person = {
name: "jang",
age: 12,
};
{
"name": "jang",
"age": 12
}
์ด์ ๊ฐ์ ํน์ง ๋๋ฌธ์ Javascript ์์๋ง ์ฌ์ฉํ๋ค๊ณ ์ ์ ์์ง๋ง ์ฌ์ค์ ์ด๋ค ์ธ์ด๋ ํ๋ ์์ํฌ์์๋ ์ฌ์ฉํ ์ ์๋๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํ๊ธฐ๋ ํ๋ฉฐ ๊ทธ ์ํ ์์ฒด๋ก๋ ์ฌ์ฉํ ์ ์๋ค.
ํ์ง๋ง ๊ทธ ์ํ ์์ฒด๋ก ์ฌ์ฉํ๋ค๋ฉด Ajax์์ ํน์ ์ทจ์ฝ์ ์ด ๋ฐ์ํ ์ ์์ผ๋ ์ฃผ์ํ์
JSON ๋ฌธ๋ฒ
JSON์ "Key" : "Value" ํํ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
Key๋ Value๋ ์ด๋ ํ ํ์ ์ ๊ฐ์ด ์ฌ ์ ์๋๋ฐ, ๋ฌธ์์ด์ด ์ฌ ๊ฒฝ์ฐ ํญ์ ์๋ฐ์ดํ๋ฅผ ์ด์ฉํด์ผ ํ๋ค.
๋ํ ๊ฐ์ฒด ์ฒ๋ผ ์ค์ฒฉ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
{
"name": "jang"
}
{
"name": "jang",
"age": 12
}
{
"user": [
{"id": 1, "name": "jang", "age": 12, "hobby": ["singing", "game"]},
{"id": 1, "name": "jang", "age": 12, "hobby": ["cooking", "math"]},
{"id": 1, "name": "jang", "age": 12, "hobby": ["cleaning", "running"]},
],
"order_list": [
{
"order_id": 1,
"order_item_name": "๋
ธํธ๋ถ",
"order_date": "2021-01-03:12:12:32"
},
{
"order_id": 1,
"order_item_name": "์ฒญ๋ฐ์ง",
"order_date": "2021-01-03:12:12:32"
},
{
"order_id": 1,
"order_item_name": "์๊ณ ๋ฆฌ์ฆ ์ฑ
",
"order_date": "2021-01-03:12:12:32"
}
]
}
Javascript ์์ JSON ์ฌ์ฉํ๊ธฐ
์ด์ ๋๋์ด ์ด๋ฒ ๊ธ์ ๋ชฉ์ ์ธ JSON์ Javascript์์ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ง์ ๋ํด์ ์ด์ผ๊ธฐํด๋ณด์.
์ฐ์ JSON์ Javascript์์ ์ฌ์ฉํ๋ ์ด์ ๋ ์์์ Client-Server ํต์ ์์ JSON์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ๋ง ํ๋ค.
- ํด๋ผ์ด์ธํธ๋ ์๋ฒ์๊ฒ ์ฒ๋ฆฌํด์ผํ ๋ด์ฉ์ JSON ๋ฐ์ดํฐ๋ก ๋ณํํ๊ณ ์ ์กํ๋ค.
- ๊ทธ๋ผ ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์จ JSON ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ์คํ์ ๋ง๊ฒ ์ฌ๋ณํํ๋ค.
์ด ๋ ๊ธฐ๋ฅ์ Javascript์์ ์ง์ํ๋ค.
์์ ๋ ๊ธฐ๋ฅ์ ์ข ๋ ์ผ๋ฐ์ ์ผ๋ก ์ผ๋ฐํ ํ๋ฉด, ๋ค์๊ณผ ๊ฐ๋ค.
- Javascript ๊ฐ์ฒด๋ฅผ JSON์ผ๋ก ๋ณํ
- JSON ์ Javascript ๊ฐ์ฒด๋ก ๋ณํ
Javascript์์๋ ์ด ๋ ๊ฐ์ง์ ๊ฒฝ์ฐ์ ๋ํ JSONํด๋์ค์ ๋ฉ์๋ ์ ๊ณตํ๋ค.
Javascript ๊ฐ์ฒด๋ฅผ JSON์ผ๋ก ๋ณํ
Javascript ๊ฐ์ฒด๋ฅผ JSON์ผ๋ก ๋ณํํ๊ธฐ ์ํด์๋ JSON.stringify()
๋ฅผ ์ฌ์ฉํ๋ค.
๋ณดํต ์ฌ์ฉ์๋ก๋ถํฐ ๋ฐ์ Front ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก ๋ณด๋ผ ๋ ์ฌ์ฉ๋๋ค.
JSON.stringify(value[, replacer[, space]])
์๋ ์ ์ ์ฌ์ฉ๋ฒ์ด๊ณ ๋๋ถ๋ถ ์ฐ๋ฆฌ๋ ๋จ์ผ ํ๋ผ๋ฏธํฐ๋ก ์ฌ์ฉํ๋ค.
JSON.stringify({}); // '{}'
JSON.stringify(3.14); // '3.14'
JSON.stringify("abc"); // '"abc"'
JSON.stringify(true); // 'true'
JSON.stringify({ name: "jang", age: 12 }); // '{"name": "jang", "age": 12}'
JSON ์ Javascript ๊ฐ์ฒด๋ก ๋ณํ
JSON์ Javascript ๊ฐ์ฒด๋ก ๋ณํํ ๋๋ JSON.parse()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
๋ณดํต ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ Front ์์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํ๋ค.
JSON.parse(text[, reviver])
์์ JSON.stringify()์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ๋ ์ ์๋ค.
JSON.stringify("{}"); // {}
JSON.stringify("3.14"); // 3.14
JSON.stringify('"abc"'); // "abc"
JSON.stringify("true"); // true
JSON.stringify('{"name": "jang", "age": 12}'); // {"name": "jang", "age": 12}
๋๊ธ