JSON( javascript Object Notation )๋ผ๋ ์๋ฏธ์ ์ถ์ฝ์ด๋กย ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ย ์ ์กํ ๋ ๋ง์ด ์ฌ์ฉ ๋๋ ๊ฒฝ๋์ DATA ๊ตํ ํ์์ ์๋ฏธํ๋ค.
Javascript์์ย ๊ฐ์ฒด๋ฅผ ๋ง๋ค ๋ย ์ฌ์ฉํ๋ ํํ์.XML์ ๋์ฒดํด์ ๋ฐ์ดํฐ ์ ์ก์ ์ฌ์ฉํ๋ค.ํ๋ก ํธ์๋๊ฐ ์ค ๋ฐ์ดํฐ๋ฅผ ๋ฟ๋ฆฌ๋๊ฑฐ์!! apiํต์
์นํ์ด์งย ์ฌ์ฉ์์ ์์ฒญ์ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์๋ตํ๊ธฐ ์ํด ๋๊ธฐํ ํ์ง ์๋ ํต์ ๋ฐฉ๋ฒ
Javascript์ object(๊ฐ์ฒด)์ ๊ฐ์ดย key(์์ฑ)-value(๊ฐ)๊ฐ ๋ฌถ์ฌ์ง ํ๊ธฐ๋ฒ์ ์ฌ์ฉ
- ๋ฐฐ์ด(array)๋ ๋ฆฌ์คํธ ํ์ [ ๋๊ดํธ ]
- ๊ฐ์ฒด(object)๋ ์์ฑ ๊ฐ ์์ ์งํฉ { ์ค๊ดํธ }
- ๋ณต์์ data๋ , ๋ก ๊ตฌ๋ถ
์ค๊ดํธ๋ก ์์{ }ํด์ ์์ ์ธ ๋ฐ์ดํฐ๋ค์ ๋ด๋๋ค.
//sample.jsonํ์ผ { "items":[ { "name":"์ค๋ฏธ", "age":18 }, { "name":"์๋ฏธ", "age":28 }, { "name":"๋ฏธ๋ฏธ", "age":38 } ] }
๋ฌธ์์ด์ ํญ์ย " "๋ฅผ ์ด์ฉํ์ฌ ํ๊ธฐ ํด์ผ ํ๋ค.
๋ฐ์ดํฐ ์์ฑํ ์ ์ด์ฟผ๋ฆฌ์ ์ฐ๊ฒฐ์์ผ์ค๋ค.

์๋ ์๋ @ajax @getJson ์ ์ด์ฉํด์ json์ ๋ถ๋ฌ์์ง๋ง ์์ฆ์๋ fetch๋ฌธ๋ฒ๋ฅผ ์ด์ฉํ๋ค.
fetch("./sample.json") // ๊ฐ์ง๊ณ ์ค๊ณ ์ถ์ ๋ฐ์ดํฐ,์ฃผ์๋ ๊ฐ๋ฅ .then((response) => response.json()) //response โ ๋ฐ๋ค .then((json) => { // console.log(json); // alert(json); const items = json.items; //json๋ฐ์ดํฐ์ items์ ์ ๊ทผ let html = ''; //๋ณ์๊ฐ ๋ฐ๋ณตํด์ ๊ณ์๋ค์ด๊ฐ๊บผ๋ผ ํ๋ฒ ์์ฑ items.forEach(item => { //๊ฐ์๋งํผ ๋ฐ๋ณตํด์ผํจ html += `<li>${item.name}</li>`; //๋ณ์์ ๋ด์ }); //list(๋ณ์) list = document.querySelector('.list'); ///.list ์ ํํด์คฌ์ (์๋ฐ์คํฌ๋ฆฝ์ค ์ ํ๋ฒ) list.innerHTML = html; //.list์๋ค๊ฐ ๋ฃ์์ });//
response๋ฅผ json์ผ๋ก ๋ฐ์์ค๊ฒ ๋ค
๊ผญ response.json๋ก ๋ฐ๋๊ฑด ์๋์ง๋ง ๋๋ถ๋ถ์ด json์ด๋ค.
์คํ์ด๋ผ๋ ๋ป (์๋ก๋์จ ๋ฌธ)
์ฐ๋๋ฒ
( ) => { }
json์์ ์๋ ๋ณ์๋ช ์ ๊ฐ์ ธ์ค๊ฒ ๋ค!
const๋ ์ ๋ ๋ณํ์ง ์๋ ๋ณ์, ์ฌํ ๋น ๋ถ๊ฐ๋ฅํ ๋ณ์(var๋ ๊ฐ๋)
items ์ ๋ํ ๋ณต์์ ํ์ย forEach๋ฌธ์ ์ฌ์ฉ
list = document.querySelector('.list');
querySelector- ๋จ์ผ์์ญ , ์ฌ๊ธฐ๋ค๊ฐ pํ๊ทธ๋ฅผ ๋ฃ์ผ๋ฉด ์ ์ผ ์์ ์๋ pํ๊ทธ ํ๋๋ง ์ ํ๋จ
querySelectorAll- ๋ชจ๋ ์์ญ ex) ๋ชจ๋ pํ๊ทธ
forโ ๋ด๊ฐ ๋๋ฆด ๊ฐฏ์๋ฅผ ์ค์ ํด์ผํจ, ๊ท์ฐฎ
forEach(๊ฐ๊ฐ) โ ๋ฐฐ์ด๋ง ์ ์ด์ฃผ๋ฉด ๊ฐฏ์๋งํผ ์์์ ๋์๊ฐ
element โ json์ ๋ณด์ ๋ค์ด๊ฐ ์์๊ฒ ํด์ฃผ๋์ , ์๋ฌด์ด๋ฆ์ด๋ ์๊ด์์๋ฐฐ์ด์ด๋ฆ.forEach(element => { });
๋ฌด์กฐ๊ฑด ๊ฐ์ฒด๋ก ์ด๋ฃจ์์ ธ์๋ค
์ฌ๊ณผ = { ๋น๋(๋ณ์) ๋น๋:10, ์:"๋นจ๊ฐ", ๊ธ์ก:1000 } ```
let html = ''; //html์ด๋ ๋ณ์์ human.forEach(element => { html += `<li>${element.name}</li>` //${๋ฐ์ดํฐ} // console.log(html); // ํ๋์ฉ ์์ฐจ์ ์ผ๋ก ์คํ (๊ณผ์ ์ ๋ณผ์์์) }); console.log(html); // ์ต์ข ๊ฐ
html += `<li>aaaa</li>` html = html + `<li>aaaa</li>`
+= โ html๋ณ์์ ํ๊ทธ๋ฅผ ํฉ์ณ์ HTML์ ๋ด๋๋ค.
๊ทธ๊ฑธ ๋ฐฐ์ด ๊ฐ์๋งํผ ๋๋ฆฐ๋ค. (๋ 3๋ฒ)
๋ฌธ์์ด์ ๋ณ์๋ฅผ ๋ณด๊ดํ๊ณ ๋ฐ๊ฟ๋ ์ฐ๋ฉด๋จ
๋ฐฑํฑ ์ ์ฌ์ฉํ์ง ์๊ณ โ โ ๋ฐ์ดํ๋ฅผ ์ด๋ค๋ฉด ๋ณ์๋ฅผ ๋ชป์ด๋ค. ๋์ด์จ์ผํจ โ ๋ฒ๊ฑฐ๋ก์
โ ๋ฐฑํฑ์ ์ฌ์ฉํ๋ฉด ํ๋ฒ์ ์ฌ์ฉ๊ฐ๋ฅ
adult = '์ฑ์ธ' if (element.age < 20) { adult = '๋ฏธ์ฑ๋ ์' }else{ adult = '์ฑ์ธ' }
adult = (element.age < 20) ? '๋ฏธ์ฑ๋ ์':'์ฑ์ธ'; pet = (element.pet) ? '์๋ค':'์๋ค'; html += `<li>์ด๋ฆ : ${element.name}<br> ์ฑ์ธ: ${adult}<br> ํซ: ${pet}</li>`
? = ์ฐธ์ด๋ฉด: = ๊ฑฐ์ง์ด๋ฉด (์๋ค๋ฉด)element.pet์ด ์กฐ๊ฑด๋ฌธ์ด ์๋์ด์ ๋
โ if๋ฌธ ์์ฒด๊ฐ ์ฐธ์ผ๋ ์คํ๋๋ ์ ์์ผ๋ก ์์ฒด๊ฐ ์กฐ๊ฑด๋ฌธ์ด ๋ ์์๋ค.