# JSON(Javascript Object Notation)์ด๋?
# 1๏ธโฃ JSON ์ด๋?
JSON์ ๊ฒฝ๋ํ ๋์ด์๋ ํ๋์ ๋ฐ์ดํฐ๊ตํ ํ์์ด๋ค.
์๋ก ๋ค๋ฅธ ์ธ์ด๋ค๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก (๋ณด๋ค ํธ๋ฆฌํ๊ฒ)๋ง๋ค์ด์ง ํ ์คํธ ๊ธฐ๋ฐ์ ํ์์ด๋ค. ์ฐ๋ฆฌ๊ฐ ์ ์๊ณ ์๋ XML(eXtensible Markup Language)๋ ์๋ก ๋ค๋ฅธ ์ธ์ด๋ค๊ฐ์ ๋ฐ์ดํฐ ๊ตํ, ์ฌ๋์ด ๋ณผ ์ ์๋ ์ ๋ณด ํ๊ธฐ, ์ฝ๊ตฌ ๋จ์ํ ๊ตฌ์ฑ ๋ฑ์ ๋ชฉํ๋ก ๋ง๋ค์ด์ง ๋ฐ์ดํฐ ๊ตํ๋ฐฉ์ ์ค์ ํ๋์ธ๋ฐ ์ด๋ณด๋ค ๋ ๊ฐ๋ณ๊ฒ ๋ง๋ค์ด์ง ๊ฒ์ด JSON ํ๊ธฐ๋ฐฉ์์ด๋ค.
# JSON์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์๋๋ค.
JSON์ ์ด๊ณณ ์ ๊ณณ ์ด๋๊ณณ์์๋ ์ฌ์ฉ๋๊ณ ์๋ค. ํ์ง๋ง JSON์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์๋๋ผ ๊ทธ์ ๋จ์ํ ๋ฐ์ดํฐ ํ๊ธฐ๋ฐฉ๋ฒ ์ค์ ํ๋์ด๋ค. XML ๋ณด๋ค ๊ธฐ๋ฅ์ด ์ ๊ณ ๊ฐ๋ณ๊ธฐ ๋๋ฌธ์ ํ์ฑ๋ ๋น ๋ฅด๊ณ ์ฉ์ดํ๋ฉฐ ๊ฐ๋จํ ๊ตฌ์กฐ๋ก ์ธํด ํด๋ผ์ด์ธํธ/์๋ฒ ์ด๋์๋ ์ฝ๊ฒ ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
# 2๏ธโฃ JSON์ ๊ตฌ์กฐ
๊ธฐ๋ณธ์ ์ผ๋ก 'name/value' ํํ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
{object}
name(string):value
[array]
object ๋ ์ค๊ดํธ๋ฅผ ์ด์ฉํด์ ๊ฐ์ธ๊ณ ์๋ค. '{}'
name์ string ์ผ๋ก ๋์ด ์๊ณ name ์ ํ ์์ผ๋ก ์ฝ๋ก ':' ์ ๋๊ณ value ๊ฐ ์จ๋ค.
value๋ ํฐ๋ฐ์ดํ์์ย ,ย ย ,ย ,ย ,ย ,ย ย ,์ด ์ฌ์ ์๋ค.
string, number, true, false, null, object, array
# JSON ๊ณต์ ์ฌ์ดํธ
์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ์ ํ์ธํ๋ฉด ๋๋ค!
- http://json.org/json-ko.html (opens new window)
- http://ko.wikipedia.org/wiki/JSON (opens new window)
# JSON ์์
{
"member": [
{
"id": "youngjun108059",
"blog": "tistory",
"from": "korea",
"memo": "HelloWorld"
},
{
"id": "jun108059",
"blog": "tistory.com",
"from": "korea",
"memo": "HelloWorld2"
}
]
}
member ๋ผ๋ name์ value๋ก ๋ฐฐ์ด์ด ๋ค์ด๊ฐ ์๋ค.
๊ทธ ๋ฐฐ์ด ์์๋ ๊ฐ object๊ฐ ๋๊ฐ ๋์ด๋์ด ์๋๋ฐ name:value
๋ก ๊ฐ ๊ฐ string ๊ฐ์ด ๋ค์ด๊ฐ ์๋ค.
Javascript ๋ด์์ ์์ JSON ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋ฐฉ๋ฒ์ ์์ ๋ก ์์๋ณด์.
<!DOCTYPE html>
<HTML>
<HEAD>
<TITLE> JSON Example </TITLE>
</HEAD>
<BODY onload="jsonParsing()">
<span id='a'> </span> <br>
<span id='b'> </span>
</BODY>
<SCRIPT type="text/javascript">
function jsonParsing() {
var jsonText = '{"member":[{"id":"jun108059","blog":"tistory","from":"korea","memo":"HelloWorld"},{"id":"youngjun108059","blog":"tistory.com","from":"korea","memo":"HelloWorld2"}]}';
var o = JSON.parse(jsonText);
document.getElementById('a').innerHTML = o.member[0].id + '.' + o.member[0].blog;
document.getElementById('b').innerHTML = o.member[1].id + '.' + o.member[0].blog;
}
</SCRIPT>
</HTML>
JSON.parse
๋ฅผ ์ด์ฉํด์ ํ
์คํธ๋ฅผย JSON object ๋ก ๋ณํํ์ฌ ์ฌ์ฉํ์๋ค.
๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ๋ค.
jun108059.tistory
youngjun108059.tistory
JSON object ๋ฅผ ๋ค์ JSON text ๋ก ๋ณํํ๋ ค๋ฉด?
console.log(JSON.stringify(o));
๊ฒฐ๊ณผ
{"member":[{"id":"jun108059","blog":"tistory","from":"korea","memo":"HelloWorld"},{"id":"youngjun108059","blog":"tistory.com","from":"korea","memo":"HelloWorld2"}]}
# Reference
โ RPC VS RMI SPA๋? โ