whatisthis?
javaScript. (19) JSON (stringify / parse) ๋ณธ๋ฌธ
๐ก JSON์ด๋?
JavaScript Object Notation (JSON) ์
์์ฑ-๊ฐ ์(attribute–value pairs / array data types (or any other serializable value))
๋๋ "ํค-๊ฐ ์"์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ ์ค๋ธ์ ํธ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด
์ธ๊ฐ์ด ์ฝ์ ์ ์๋ ํ ์คํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋ฐฉํ ํ์ค ํฌ๋งท.
์ธํฐ๋ท์์ ์๋ฃ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ๊ทธ ์๋ฃ๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์๋ ค์ ธ ์์.
์๋ฃ์ ์ข ๋ฅ์ ํฐ ์ ํ์ ์์ผ๋ฉฐ, ํนํ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ๋ณ์๊ฐ์ ํํํ๋ ๋ฐ ์ ํฉํจ.
๋น๋๊ธฐ ๋ธ๋ผ์ฐ์ /์๋ฒ ํต์ (AJAX)์ ์ํด, ๋๊ฒ๋ XML(AJAX๊ฐ ์ฌ์ฉ)์ ๋์ฒดํ๋ ์ฃผ์ ๋ฐ์ดํฐ ํฌ๋งท.
** ์ฐธ๊ณ ใ ก ์ด์ ์ ๋ฐฐ์ ๋ ๋ด์ฉ ไธญ
console.dir | - element๋ฅผ JSON๊ณผ ๊ฐ์ ํธ๋ฆฌ๊ตฌ์กฐ๋ก ์ถ๋ ฅ - ๊ฐ์ฒด ๋ก๊น โญ |
JSON ์ ๋ค์๋งํด, ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฌธ๋ฒ์ ๋น๋ฆฐ ๋ฐ์ดํฐ ๊ตํ๋ฐฉ์์ด๋ค.
์์> zeroCho ๋์ ํํ์ด์ง์ ๋ํ ์ ๋ณด๋ฅผ JSON์ผ๋ก ๋ํ๋
{
"title": "Zero Cho",
"description": "Zero Cho's HomePage",
"owner": "Zero Cho",
"createdAt": "2016-04-05",
"keyword": ["javascript", "nodejs", "mongodb", "react", "meteor"],
"memberCount": 2,
"private": false,
"meta": {
"googleAnalytics": true
}
}
= ํ๋์ ๊ฐ์ฒด๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ํํํจ.
์๋ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๊ธฐ ์ํด์ XML์ ์ฌ์ฉํ์ง๋ง, JSON์ด ์ฝ๋์ ์์ด ๋ ์ ์ด์ ๋ง์ด ์ฐ์.
___
<JSON ๊ท์น>
- ์ผ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ์ฒ๋ผ ๋ฌธ์์ด / ์ซ์ / ๋ถ๋ฆฐ / ๋ฐฐ์ด / ๊ฐ์ฒด ๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅ.
- ๋จ, ํจ์๋ ๋ค์ด๊ฐ๋ฉด ์๋จ.
- ์์๋ฐ์ดํ (' ') ๋ง๊ณ ํฐ๋ฐ์ดํ(" ")๋ฅผ ์ฌ์ฉํด์ผํจ.
- key๊ฐ๋ ๋ฐ๋์ " " ๋ก ๊ฐ์ธ์ค์ผํจ
>>javaScript ๊ฐ์ฒด์์๋ key๋ฅผ ๋ฐ์ดํ ์์ด ์ผ์ง๋ง(์ ํ์ฌํญ) / JSON์์๋ ๋ค๋ฆ.
___
JSON ๊ฐ์ฒด
- ์๋ฐ์คํฌ๋ฆฝํธ์์๋ JSON ๊ฐ์ฒด๋ฅผ ์ ๊ณตํ์ฌ JSON์ ํ์ฉํ ์ ์๊ฒ ํ๋ค.
- ๋ฉ์๋
- stringify
- parse
let example = {
"stringifyMe" : "please",
"andParseMe" : "thankYou"
};
const string = JSON.stringify(example); // '{"stringifyMe":"please","andParseME":"thankYou"}'
const parsed = JSON.parse(string); // ์์ํ๋ก
stringify๋ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ง๋ง ๊ฐ์ฒด์ฒ๋ผ ์๊ธด๊ฑฐ๊ณ
parse๋ ๊ทธ ๋ฌธ์์ด์ ์์ํ๋ก ๋๋ ค์ค
>> JSON ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ฅผ ํตํด ์ ์กํ ๋, ๊ฐ์ฒด๋ฅผ ์ดํดํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ stringify๋ฅผ ํด์ค.
๊ทธ๋ฆฌ๊ณ ์๋ฒ์์ ๋๋ ค๋ฐ์ ๋ ๋ฌธ์์ด์ ๋ค์ JSON ๊ฐ์ฒด๋ก ๋ฐ๊พธ๋ parse๋ฅผ ํด์ค.
โโ
JSON.parse()๋ฅผ ํ ๋
์ธ์๊ฐ undefined ์ด๊ฑฐ๋ JSONํํ๊ฐ ์๋ ๋ฌธ์์ด์ด๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
Uncaught SyntaxError: Unexpected token
JSON ํ์ฉ
JSON.stringify์
JSON.parse ๋ฅผ
๋์์ ์ฌ์ฉํ๋ฉด >>> ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ ์ ์๋ค.
โ ์ฐธ์กฐ (reference)๊ฐ ์๋ ๋ณต์ฌ (copy)์ด๋ค!
let obj = { test: 'yes' };
let obj2 = JSON.parse(JSON.stringify(obj)); // { test: 'yes' }
obj2.test = 'change';
obj.test; // 'yes' ใ
ก ๋ณต์ฌ๋ฅผ ํด์ ๋์ ๋ค๋ฅธ ๊ฐ์ฒด์ด๋ฏ๋ก ๋ฐ๋์ง ์์
์ถ๊ฐ +++
๐ป ๋ฐ์ดํฐ ์กฐ์์ด์ธ XML์ ๋ํด
XML์ ๋ฐ์ดํฐ ์ ์ฅ + ์ ์ก์ ์ํ ๋งํฌ์ ์ธ์ด๋ก, ๋ฐ์ดํฐ ๊ตํ์ ์ํ ๊ตฌ์กฐ์ ์์ ๊ทธ ๋ชฉ์ ์ ๋๊ณ ์์.
์ฆ, ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ๋ง ์๊ณ HTML๊ฐ์ด ํํํ์ง๋ ์์.
https://mywebproject.tistory.com/161
>> ํฌ๋กฌ ํด๋ก ์ฝ๋ฉ์์๋
json ๊ฐ์ฒด์ stringify๋ parse๋ฅผ ์ผ์๋ค. ์ฐธ๊ณ .
๋ฌผ๋ก ๊ฐ์๋ด์ฉ์ด๋ผ private ๊ฑธ์ด๋จ๋ค.
REFERENCE
์ด ํฌ์คํ ์ zerocho๋์ javascript ๊ฐ์๋ฅผ ๋ณด๊ณ ์์ฑํ ๊ธ์ ๋๋ค.
๊ณต๋ถ+๊ธฐ๋ก ์ฉ์ผ๋ก ์์ฑํ ๊ฒ์ด๋ฉฐ, ์์ธํ ๊ฒ์ ์ ํฌ์คํ ์ ์ฐธ๊ณ ํ์ธ์!
'WEB STUDY > JAVASCRIPT' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
javaScript. (20) Event Listener / Callback (0) | 2022.01.29 |
---|---|
javaScript. ์ด๋ฒคํธ(on__)์ ์ข ๋ฅ (0) | 2022.01.28 |
javaScript. (18) ์คํ ์ปจํ ์คํธ (0) | 2022.01.28 |
javaScript. (17) ํจ์ ์ค์ฝํ (0) | 2022.01.28 |
javaScript. (16) Object ๊ฐ์ฒด (0) | 2022.01.28 |