JSON (JavaScript Object Notation)
๐ JSON (JavaScript Object Notation)
: ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๊ตํํ๊ณ ์ ์ฅํ๊ธฐ ์ํ ํ ์คํธ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ ๊ตํ ํ์ค
ํ ์คํธ ๊ธฐ๋ฐ์ด๋ค โ
์ด๋ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์๋ JSON ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ฌ์ฉํ ์ ์๋ค โ
์ฆ, ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ๋ ์ด๋ค ํ๋ก๊ทธ๋๋ฐ์ธ์ด๋ ์ธ ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค.
๐ JSON๊ณผ XML
XML(EXtensible Markup Language)์ ๋ฌธ์๊ธฐ๋ฐ์ ๋งํฌ์ ์ธ์ด๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด ์๋ ์ ์ฅํ๊ณ ์ ๋ฌํ๋ ๊ฒ ๋ง์ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ก๋ค.
๊ณตํต์
- ๋๋ค ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ๋ฌํ๊ธฐ ์ํด ๋ง๋ค์ด์ก๋ค.
- ์ฌ๋๋ ์ฝ์ ์ ์๋ค.
- ๊ณ์ธต์ ์ธ ๋ฐ์ดํฐ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ค.
- ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ํด ํ์ฑ๋ ์ ์๋ค.
- XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์ด์ฉํ์ฌ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ก๋ฐ์ ์ ์๋ค.
์ฐจ์ด์
- JSON์ ์ข ๋ฃ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
- JSON์ ๊ตฌ๋ฌธ์ด XML์ ๊ตฌ๋ฌธ๋ณด๋ค ์งง๋ค.
- JSON ๋ฐ์ดํฐ๊ฐ XML ๋ฐ์ดํฐ๋ณด๋ค ๋ ๋นจ๋ฆฌ ์ฝ๊ณ ์ธ ์ ์๋ค.
- XML์ ๋ฐฐ์ด์ ์ฌ์ฉํ ์ ์์ง๋ง, JSON์ ๋ฐฐ์ด์ ์ฌ์ฉํ ์ ์๋ค.
- XML์ XML ํ์๋ก ํ์ฑ๋๊ณ , JSON์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์คํจ์์ธ
eval()
ํจ์๋ก ํ์ฑ๋๋ค.
// XML ์์
<dog>
<name>์๋นต</name>
<family>์ฐ์์ฝ๊ธฐ<family>
<age>1</age>
<weight>2.14</weight>
</dog>
// JSON ์์
{
"name": "์๋นต",
"family": "์ฐ์์ฝ๊ธฐ",
"age": 1,
"weight": 2.14
}
JSON์ XML๋ณด๋ค ๋ ๋น ๋ฅธ ์ฒ๋ฆฌ์๋๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง ์ ์ก๋ฐ์ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ์ง์ ์ธ์ฆํด์ผํ๋ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค.
๐ JSON ๋ฌธ๋ฒ
JSON์ ๊ฐ์ฒด ํ๊ธฐ๋ฒ ์ค ๋ฆฌํฐ๋ด(literal)๊ณผ ํ๋กํผํฐ(property)๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ ์ด๋ค.
- ๋ฆฌํฐ๋ด: ๋ณ์๊ฐ ์๋ ํด์๋๋ ๊ฐ ์์ฒด ex) 12(์ซ์ ๋ฆฌํฐ๋ด), โJSONโ(๋ฌธ์์ด ๋ฆฌํฐ๋ด), true(๋ถ๋ฆฌ์ธ ๋ฆฌํฐ๋ด)
- ๊ฐ์ฒด: ์ด๋ฆ(name)๊ณผ ๊ฐ(value)์ผ๋ก ๊ตฌ์ฑ๋ ํ๋กํผํฐ(property)์ ์ ๋ ฌ๋์ง ์์ ์งํฉ
// ๋ค์์ ํ๋กํผํฐ๋ก ๊ตฌ์ฑ๋ ๊ฐ์ฒด
{
"name": "์๋นต",
"family": "์ฐ์์ฝ๊ธฐ",
"age": 1,
"weight": 2.14
}
- JSON์์ ์ฃผ์์ ์ฌ์ฉํ๋๊ฒ์ ๊ถ์ฅํ์ง ์๋๋ค.
undefined ์ null
JSON์์๋ undefined
ํ์
์ ์ ๊ณตํ์ง ์๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ค๋ฅด๊ฒ JSON์์ null
์ ๊ฐ์ ๊ฐ์ง๊ณ ์์ง ์๋ค๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ ํ๋์ ๋ฐ์ดํฐ๊ฐ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ ์ํด์ ์ฌ์ฉํด์ผ ํ๋ค.
๐ ์๋ฐ์คํฌ๋ฆฝํธ์ JSON
์๋ฐ์คํฌ๋ฆฝํธ์์ JSON์ ์ฌ์ฉํ๊ธฐ ์ํด 3๊ฐ์ง์ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค.
JSON.stringify()
: ์ธ์๋ก ์ ๋ฌ๋ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ๋ณํJSON.parse(text)
: ์ธ์๋ก ๋ฐ์ ๋ฌธ์์ด์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ก ๋ณํtoJSON
: ์๋ฐ์คํฌ๋ฆฝํธ์ Date ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฅผ JSON ํ์์ ๋ฌธ์์ด๋ก ๋ณํ.Date.prototype
๊ฐ์ฒด์์๋ง ์ฌ์ฉํ ์ ์๋ค.
// toJSON ์์
var date = new Date(); // ์๋ฐ์คํฌ๋ฆฝํธ Date ๊ฐ์ฒด
var str = date.toJSON(); // Date ๊ฐ์ฒด๋ฅผ JSON ํ์์ ๋ฌธ์์ด๋ก ๋ณํํจ.
document.getElementById("json").innerHTML = date + "<br>";
document.getElementById("json").innerHTML += str;
๐ฌ ์ต์ ๋๊ธ