...

JSON ์ด๋?
JSON์ JavaScript Object Notation์ ์ฝ์์ ๋๋ค.
JSON์ ์ข ๋ ์ฝ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๊ณ ์ ์ฅํ๊ธฐ ์ํ์ฌ ๋ง๋ค์ด์ง ํ ์คํธ ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ ๊ตํ ํ์ค์ ๋๋ค.
โ์ด๋ฌํ JSON์ XML์ ๋์์ผ๋ก์ ์ข ๋ ์ฝ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๊ณ ์ ์ฅํ๊ธฐ ์ํ์ฌ ๊ณ ์๋์์ต๋๋ค.
๋ํ, JSON์ ํ ์คํธ ๊ธฐ๋ฐ์ด๋ฏ๋ก ์ด๋ ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์๋ JSON ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค.
โ
JSON์ ํน์ง
- JSON์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฅํ์ฌ ๋ง๋ค์ด์ก์ต๋๋ค.
- JSON์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด ํ๊ธฐ๋ฒ์ ๋ฐ๋ฆ ๋๋ค.
- JSON์ ์ฌ๋๊ณผ ๊ธฐ๊ณ๊ฐ ๋ชจ๋ ์ฝ๊ธฐ ํธํ๋๋ก ๊ณ ์๋์์ต๋๋ค.
- JSON์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ด์์ฒด์ ์ ๋ ๋ฆฝ์ ์ ๋๋ค.
โ
JSON vs XML
โXML ๋ฌธ์๋ XML DOM(Document Object Model)์ ์ด์ฉํ์ฌ ํด๋น ๋ฌธ์์ ์ ๊ทผํฉ๋๋ค. ํ์ง๋ง JSON์ ๋ฌธ์์ด์ ์ ์ก๋ฐ์ ํ์ ํด๋น ๋ฌธ์์ด์ ๋ฐ๋ก ํ์ฑํ๋ฏ๋ก, XML๋ณด๋ค ๋์ฑ ๋น ๋ฅธ ์ฒ๋ฆฌ ์๋๋ฅผ ๋ณด์ฌ์ค๋๋ค. ๋ฐ๋ผ์ HTML๊ณผ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์ฐ๋๋์ด ๋น ๋ฅธ ์๋ต์ด ํ์ํ ์น ํ๊ฒฝ์์ ๋ง์ด ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
xml ๊ณผ json ๊ณตํต์
- ๋ ๋ค ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ๋ฌํ๊ธฐ ์ํด ๊ณ ์๋์์ต๋๋ค.
- ๋ ๋ค ๊ธฐ๊ณ๋ฟ๋ง ์๋๋ผ ์ฌ๋๋ ์ฝ๊ฒ ์ฝ์ ์ ์์ต๋๋ค.
- ๋ ๋ค ๊ณ์ธต์ ์ธ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋๋ค.
- ๋ ๋ค ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ํด ํ์ฑ๋ ์ ์์ต๋๋ค.
- ๋ ๋ค XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์ด์ฉํ์ฌ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ก๋ฐ์ ์ ์์ต๋๋ค.
xml ๊ณผ json ์ฐจ์ด์
- JSON์ ์ข ๋ฃ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค.
- JSON์ ๊ตฌ๋ฌธ์ด XML์ ๊ตฌ๋ฌธ๋ณด๋ค ๋ ์งง์ต๋๋ค.
- JSON ๋ฐ์ดํฐ๊ฐ XML ๋ฐ์ดํฐ๋ณด๋ค ๋ ๋นจ๋ฆฌ ์ฝ๊ณ ์ธ ์ ์์ต๋๋ค.
- XML์ ๋ฐฐ์ด์ ์ฌ์ฉํ ์ ์์ง๋ง, JSON์ ๋ฐฐ์ด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- XML์ XML ํ์๋ก ํ์ฑ๋๋ฉฐ, JSON์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ค ํจ์์ธ eval() ํจ์๋ก ํ์ฑ๋ฉ๋๋ค.
JSON ์ฃผ์ ๊ด๋ จ
JSON ํ์ค์ ์ฐฝ์์์ธ ๋๊ธ๋ผ์ค ํฌ๋กํฌ๋๋ JSON์๋ ์ฃผ์์ด ๋ค์ด๊ฐ์ง ์๋ ๊ฒ์ด ๋ฐ๋ฅด๋ค๊ณ ๊ท์ ํ๊ณ ์์ต๋๋ค.
๊ทธ๊ฒ์ ์๋ก ๋ค๋ฅธ ์์คํ ๊ฐ์ ์ฐ๋๊ณผ ํธํ์ฑ์ ์ํ ์กฐ์น์์ต๋๋ค.
๋ฐ๋์ ์ฃผ์์ ์ฌ์ฉํด์ผ ํ๋ค๋ฉด, ์ฃผ์์ด ํฌํจ๋ JSON ๋ฐ์ดํฐ๋ฅผ ํ์ฑํ๊ธฐ ์ ์ ์ฃผ์๋ง์ ๋จผ์ ์ ๊ฑฐํด์ผ ํฉ๋๋ค.
ํ์ง๋ง ๋๋๋ก JSON์๋ ์ฃผ์์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
โ
*XML์ ์ฃผ์ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
JSON ๊ตฌ์กฐ
โ
JSON ๊ฐ์ฒด
JSON ๊ฐ์ฒด๋ ์ค๊ดํธ({})๋ก ๋๋ฌ์์ ํํํฉ๋๋ค.
๋ํ, JSON ๊ฐ์ฒด๋ ์ผํ(,)๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ํ๋กํผํฐ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
{
"name": "์๋นต",
"family": "์ฐ์์ฝ๊ธฐ",
"age": 1,
"weight": 2.14
}

โ
JSON ๋ฐฐ์ด
JSON ๋ฐฐ์ด์ ๋๊ดํธ([])๋ก ๋๋ฌ์์ ํํํฉ๋๋ค.
๋ํ, JSON ๋ฐฐ์ด์ ์ผํ(,)๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ JSON ๋ฐ์ดํฐ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
๋ค์ ์์ ๋ ๋ฐฐ์ด์ ์ด๋ฆ์ด "dog"์ด๊ณ , 3๊ฐ์ JSON ๊ฐ์ฒด๋ฅผ ์์๋ก ๊ฐ์ง๋ JSON ๋ฐฐ์ด์ ์์ ์ ๋๋ค.
"dog": [
{"name": "์๋นต", "family": "์ฐ์์ฝ๊ธฐ", "age": 1, "weight": 2.14},
{"name": "์ฝฉ์ฝฉ", "family": "ํฌ๋ฉ๋ผ๋์", "age": 3, "weight": 2.5},
{"name": "์ ค๋ฆฌ", "family": "ํธ๋ค", "age": 7, "weight": 3.1}
]

โ๋ณต์กํ๊ฒ ์๊ฐํ ํ์ ์์ต๋๋ค.
๊ทธ๋ฅ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ผ๊ณ ์น๋ถํ๊ณ ๋๊ฐ์ด ์ฐ๋ฉด ๋ฉ๋๋ค.
JSON ํ์
JSON์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ํ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ซ์(number)
- ๋ฌธ์์ด(string)
- ๋ถ๋ฆฌ์ธ(boolean)
- ๊ฐ์ฒด(object)
- ๋ฐฐ์ด(array)
- null
{
"์ซ์": 42,
"๋ฌธ์์ด": "Hello, world!",
"๋ถ๋ฆฌ์ธ": true,
"๊ฐ์ฒด": {
"์ด๋ฆ": "ํ๊ธธ๋",
"๋์ด": 25
},
"๋ฐฐ์ด": [1, 2, 3, 4, 5],
"null": null
}
# ์ฐธ๊ณ ์๋ฃ
http://www.tcpschool.com/json/json_basic_structure
์ด ๊ธ์ด ์ข์ผ์ จ๋ค๋ฉด ๊ตฌ๋ & ์ข์์
์ฌ๋ฌ๋ถ์ ๊ตฌ๋
๊ณผ ์ข์์๋
์ ์์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค.