[JSON]

๋…•์ดยท2022๋…„ 11์›” 2์ผ
0

Learned

๋ชฉ๋ก ๋ณด๊ธฐ
1/7

๐ŸŽˆ JSON

  • JavaScript Object Notation๋ผ๋Š” ์˜๋ฏธ์˜ ์ถ•์•ฝ์–ด๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ „์†กํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ๋Ÿ‰์˜ DATA ๊ตํ™˜ ํ˜•์‹(๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ํ‘œํ˜„ ๋ฐฉ๋ฒ•)์ด๋‹ค.
  • ํƒœ๊ทธ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ์ค‘๊ด„ํ˜ธ({}) ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ํ•˜๊ณ , ๊ฐ’์„ ','๋กœ ๋‚˜์—ดํ•˜๊ธฐ์— ๊ทธ ํ‘œํ˜„์ด ๊ฐ„๋‹จํ•˜๋‹ค.
  • JSON์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ํ•ด๋‹น ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋กœ๋“œ๋œ ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ์— ํ•œ์ •๋œ๋‹ค.

๐ŸŽˆ API

  • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก, ์šด์˜ ์ฒด์ œ๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“  ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋œปํ•œ๋‹ค.
  • Application Programing Interface๋ผ๋Š” ์šฉ์–ด๋กœ์จ, ์–ด๋– ํ•œ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•จ. ์˜ˆ๋ฅผ๋“ค์–ด ์–ด๋–ค ํŠน์ • ์‚ฌ์ดํŠธ์—์„œ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ๊ฒฝ์šฐ ์–ด๋– ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ •๋ณด๋ฅผ ์š”์ฒญํ•ด์•ผ ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์–ด๋– ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณต ๋ฐ›์„ ์ˆ˜ ์žˆ์„์ง€์— ๋Œ€ํ•œ ๊ทœ๊ฒฉ๋“ค์„ API๋ผ๊ณ  ํ•˜๋Š”๊ฒƒ์ด๋‹ค.

ex)youtube์— '๋จน๋ฐฉ'์„ ๊ฒ€์ƒ‰ํ–ˆ์„๋•Œ์˜ API
https://www.googleapis.com/youtube/v3/search?part=snippet&q=%EB%A8%B9%EB%B0%A9&maxResults=20&key=AIzaSyCvA0JdmROOxx3C60fBqO6geUp8B7xFAMs

โœ๐Ÿป data๋งŒ๋“ค๊ธฐ(๋ฐฐ์—ด)

 {
   "items":[
     {
      "name":"์ฒ ์ˆ˜",
      "age":"30",
      "๋ฌธ์‹ ":true
     },
     {
     "name":"์˜ํฌ",
     "age":"20",
     "๋ฌธ์‹ ":false
     },
     {
     "name":"๋ฏผ์ˆ˜",
     "age":"15",
     "๋ฌธ์‹ ":true
     }
   ]

}

โœ๐Ÿป fecth(๋น„๋™๊ธฐํ†ต์‹ :ํŽ˜์ด์ง€ ์ „ํ™˜์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ํ†ต์‹ )

fetch('./data.json')
.then((response) => response.json())
.then((json) => {
    x = json.items
})

โœ๐Ÿป ๊ฐ€์ ธ์˜ค๊ณ ์‹ถ์€ data

 <ul class="list1">
   <li>
   ์ด๋ฆ„:ใ…‡ใ…‡ใ…‡
   ๋‚˜์ด:ใ…‡ใ…‡ใ…‡
   </li>     
 </ul>

console.log(json);

 data = json.items

 data.forEach(element => { ๐Ÿ‘ˆ๐Ÿป ๋ฐ˜๋ณต๋ฌธ
     console.log(element); 
 });

console.log(element);

โœ๐Ÿป +=
: ๋‚ด๊ฐ€ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ๋ณ€์ˆ˜+1 + ๋ณ€์ˆ˜ + ๋ณ€์ˆ˜ : ์ฆ‰, ๋ฐฐ์—ด์˜ ๊ฐฏ์ˆ˜๋งŒํผ ๋‹ด์„ ์ˆ˜ ์žˆ์Œ

console.log(html);

โœ” ๊ฒฐ๊ณผ1(json)

data = json.items

    let html ='';
    data.forEach(element => {
        html += `<li>${element.name}</li>`;
        console.log(html);
    });

    $('.list1').html(html);


โœ” ๊ฒฐ๊ณผ2(javascript)

data = json.items

    let html ='';
    data.forEach(element => {
        html += `<li>${element.name}</li>`;
        console.log(html);
    });

    document.querySelector('.list1').innerHTML = html;

ex)age์ถ”๊ฐ€

data = json.items

    let html ='';
    data.forEach(element => {
        html += `<li>${element.name},๋‚˜์ด๋Š” = ${element.age}</li>`;
        console.log(html);
    });

    // document.querySelector('.list1').innerHTML = html;
    $('.list1').html(html);

ex)age๊ฐ€ 20์‚ด์ด์ƒ์ด๋ฉด '์„ฑ์ธ'์ดํ•˜๋ฉด '๋ฏธ์„ฑ๋…„์ž'

data = json.items

    let html ='';
    data.forEach(element => {
       
        if(element.age >= 20){
            isAdult = '์„ฑ์ธ';
            โ˜๐ŸปisAdult(๋ณ€์ˆ˜์ƒ์„ฑ)
        }else{
            isAdult = '๋ฏธ์„ฑ๋…„์ž';
        }
        html += `<li>
                ${element.name}
                ${isAdult} 
                </li>`;
    });

    // document.querySelector('.list1').innerHTML = html;
    $('.list1').html(html);

๐ŸŽˆ if๋ฌธ ์งง์€์กฐ๊ฑด์ผ๋•Œ ํ•œ์ค„๋กœ ์“ฐ๋Š”๋ฐฉ๋ฒ•(์œ„์˜ ๊ฒฐ๊ณผ์™€๊ฐ™์Œ)

 isAdult = (element.age >= 20) ? '์„ฑ์ธ' : '๋ฏธ์„ฑ๋…„์ž';

(element.age >= 20) : if
? '์„ฑ์ธ' : ๋งž๋‹ค๋ฉด '์„ฑ์ธ'
: '๋ฏธ์„ฑ๋…„์ž'; : ๊ทธ๋ ‡์ง€์•Š๋‹ค๋ฉด '๋ฏธ์„ฑ๋…„์ž'

ex)๋ฌธ์‹ ์ด์žˆ๋‹ค๋ฉด ${element.name}(๋‚˜์œ์นœ๊ตฌ) ๋„ฃ์–ด์ฃผ๊ธฐ

isBad = (element.๋ฌธ์‹ ) ? '๋‚˜์œ์นœ๊ตฌ' : '์ฐฉํ•œ์นœ๊ตฌ';
                                    โ˜๐Ÿป''(๋นˆ์นธ๊ฐ€๋Šฅ)
        html += `<li>
                ${element.name}${isBad}
                ${isAdult} 
                </li>`;

๐ŸŽˆ Youtube_example

โœ๐Ÿป ๊ฐ€์ ธ์˜ค๊ณ ์‹ถ์€ data

 <ul class="list1">
        <li>
            <img src="" alt="">
            <p></p>
        </li>
    </ul>

fetch('https://www.googleapis.com/youtube/v3/search?part=snippet&q=%EB%A8%B9%EB%B0%A9&maxResults=20&key=AIzaSyCvA0JdmROOxx3C60fBqO6geUp8B7xFAMs')
.then((response) => response.json())
.then((json) => {
    data = json.items;
    // console.log(json.items);

    html = '';

    data.forEach(el => {
        html +=`<li>
                <img src="${el.snippet.thumbnails.default.url}" alt="">
                <p>${el.snippet.title}</p>
                </li>`;               
    });
    $('.list1').html(html);
})

๐Ÿ‘‡๐Ÿป ๊ฒฐ๊ณผ

profile
ๅ…‰่€Œไธ่€€ :) ํผ๋ธ”๋ฆฌ์‹ฑ-ing

0๊ฐœ์˜ ๋Œ“๊ธ€