JSON, JavaScript ๊ฐ์ฒด ์ฐจ์ด
๐type์ด object์ธ ์ด์ ??
- jsp์ success: function(data) ์ฌ๊ธฐ๋ก ๋์ด๊ฐ
- console.log(data) ๊ฒฐ๊ณผ
๐ฉajax์์ dataType: "JSON"์ ์ค์ ํ์ ๋, ์๋ฒ์์ ์๋ตํ ๋ฐ์ดํฐ๊ฐ JSON ํ์์ผ๋ก ์ ๋ฌ๋๋ฉด,
JavaScript์์๋ ์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ์๋์ผ๋ก JavaScript ๊ฐ์ฒด๋ก ๋ณํํจ
์๋ฅผ ๋ค์ด, ์๋ฒ์์ ๋ค์๊ณผ ๊ฐ์ JSON ํ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋๋ค๊ณ ๊ฐ์
{
"name": "John",
"age": 30
}
์ด ๋ฐ์ดํฐ๋ JavaScript ๊ฐ์ฒด์ฒ๋ผ ๋ค๋ฃจ์ด์ง ์ฆ, ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ
console.log(data.name); // "John"
console.log(data.age); // 30
typeof data๊ฐ "object"๋ก ํ์๋๋ ์ด์ ๋ JavaScript์์ JSON ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด๋ก ๋ค๋ฃจ๊ธฐ ๋๋ฌธ
๐ฉ{gridDataList: Array(33)}์ ๊ฐ์ ๊ตฌ์กฐ๋ JavaScript ๊ฐ์ฒด์ ํค-๊ฐ ์(Key-Value Pair) ํํ๋ก,์ผ๋ฐ์ ์ธ JSON ๊ฐ์ฒด
์ฌ๊ธฐ์:
- "gridDataList"์ ๊ฐ์ฒด์ Key (—> resultMap.put("gridDataList", JSPํ์ผ); return resultMap; ์ปจํธ๋กค๋ฌ์์ ๋ฆฌํดํจ)
- Array(33)์ ๊ฐ์ฒด์ Value
์ฆ, "gridDataList" Key์๋ ๊ธธ์ด๊ฐ 33์ธ ๋ฐฐ์ด์ด ์ ์ฅ๋์ด ์๋ค.
๐ฉ๋ฐฐ์ด ๋ด๋ถ์ ๊ตฌ์กฐ ์ญ์ JSON ๊ฐ์ฒด๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์ธ 0์ ํด๋นํ๋ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ JSON ๊ฐ์ฒด์ ๋๋ค:
{
"GOO": "Q",
"CU": "DP",
"USE_YN": "Y",
"GR_CD": "17",
"TYPE": "Y",
}
์ด JSON ๊ฐ์ฒด๋ ํค์ ๊ฐ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์์ฑ๋ค์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์์ต๋๋ค.
๋ฐฐ์ด์ ๊ฐ ์์๊ฐ ์ด๋ฌํ JSON ๊ฐ์ฒด๋ก ๊ตฌ์ฑ๋์ด ์๊ณ ,
๋ฐฐ์ด์ ๊ธธ์ด๋ 33์ด๋ฏ๋ก, ์ด๋ฌํ ๊ฐ์ฒด๊ฐ ์ด 33๊ฐ ์ ์ฅ๋์ด ์๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค.
์ด๋ฌํ JSON ํ์์ ๋ฐ์ดํฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ค๋ฃจ๊ธฐ ์ฉ์ดํ๋ฉฐ,
์ผ๋ฐ์ ์ผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ฑฐ๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
JSON ํ์์ผ๋ก ํ์ฑํ๋ ๊ฒ๊ณผ JavaScript ํ์์ผ๋ก ํ์ฑํ๋ ๊ฒ ์ฌ์ด์ ์ฃผ์ ์ฐจ์ด
JSON ํ์ฑ:
erpMenuTree.parse({
"id": "1",
"text": "Root",
"children": [
{
"id": "2",
"text": "Child 1",
"children": [
{
"id": "3",
"text": "Grandchild 1"
},
{
"id": "4",
"text": "Grandchild 2"
}
]
},
{
"id": "5",
"text": "Child 2"
}
]
}, 'json');
JavaScript ํ์ ํ์ฑ:
var treeData = [
{
id: "1",
text: "Root",
item: [
{
id: "2",
text: "Child 1",
item: [
{
id: "3",
text: "Grandchild 1"
},
{
id: "4",
text: "Grandchild 2"
}
]
},
{
id: "5",
text: "Child 2"
}
]
}
];
erpMenuTree.parse(treeData, 'json');
์ฃผ์ ์ฐจ์ด์ ์ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ๋ฐฉ์
- JSON ํ์:
- children ์์ฑ์ด ์ฌ์ฉ
- ํ์ ํญ๋ชฉ์ children ๋ฐฐ์ด ๋ด์ ํฌํจ
- id์ text ๊ฐ์ ํค-๊ฐ ์์ผ๋ก ๋ฐ์ดํฐ๊ฐ ํํ
- JavaScript ํ์:
- item ์์ฑ์ด ์ฌ์ฉ
- ํ์ ํญ๋ชฉ์ item ๋ฐฐ์ด ๋ด์ ํฌํจ
- id์ text ๊ฐ์ ํค-๊ฐ ์์ผ๋ก ๋ฐ์ดํฐ๊ฐ ํํ
— json์ ํ์์ด ๋ฌธ์์ด์ด๊ณ js๋ ๊ฐ์ฒด์ธ๊ฐ?
JSON(JavaScript Object Notation)์ ๋ฌธ์์ด ํ์์ ๋ฐ์ดํฐ ํ๊ธฐ๋ฒ์ด๋ฉฐ, JavaScript ๊ฐ์ฒด๋ ์ค์ ๊ฐ์ฒด์ ๋๋ค.
- JSON: JSON์ ๋ฐ์ดํฐ ๊ตํ ํ์์ผ๋ก ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. JSON ๋ฐ์ดํฐ๋ ๋ฌธ์์ด๋ก ํํ๋๋ฉฐ, ํค-๊ฐ ์์ผ๋ก ๊ตฌ์ฑ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋จํ๊ฒ ๋ํ๋
๋๋ค. ์๋ฅผ ๋ค์ด, {"name": "John", "age": 30}๊ณผ ๊ฐ์ ํํ์ ๋ฌธ์์ด์
๋๋ค.
JSON ๋ฐ์ดํฐ๋ฅผ JavaScript ๊ฐ์ฒด๋ก ๋ณํํ๋ ค๋ฉด JSON.parse()๋ฅผ ์ฌ์ฉํฉ๋๋ค. - JavaScript ๊ฐ์ฒด: JavaScript์์ ๊ฐ์ฒด๋ ์ค์ ๊ฐ์ฒด๋ก ์กด์ฌํ๋ฉฐ, ๋ค์ํ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
JavaScript ๊ฐ์ฒด๋ ์ค๊ดํธ {}๋ก ์ ์๋๋ฉฐ, ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
var person = {
name: "John",
age: 30,
sayHello: function() {
console.log("Hello, my name is " + this.name);
}
};
๋ ํ์์ ์๋ก ๋ค๋ฅธ ๋ชฉ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
JSON์ ๋ฐ์ดํฐ ๊ตํ์ ์ํ ๊ฒฝ๋ ๋ฐ์ดํฐ ํ์์ด๋ฉฐ, JavaScript ๊ฐ์ฒด๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์์ฒด์ ๊ฐ์ฒด๋ฅผ ๋ํ๋ ๋๋ค.
JSON ๋ฐ์ดํฐ๋ฅผ JavaScript ๊ฐ์ฒด๋ก ๋ณํํ๊ฑฐ๋ JavaScript ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์์ด๋ก ๋ณํํ ์ ์์ผ๋ฉฐ,
์ด๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ฑฐ๋ ๊ตํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.