🤟
Vanilla-JS
  • TRIPLE-PLUS Adout
  • Babel.JS
  • 01.Vanilla-JS
    • 01. Hello JavaScript
    • 02. 변수
      • 02-1.지키면 좋은 룰(더 좋은 스타일을 위해서)
      • 02-2.숫자형꿀팁(수식 줄이기)
    • 03. 연산자
    • 04. 조건문
    • 05. 함수
      • this의 의미 6개 총정리
      • event listener와 constructor
      • 05-1. return:돌려주다
      • 05-2. 형 변환 함수
      • 05-3. Arrow function
    • 06. 객체
    • 07. 배열
      • 07-1. 배열 안에 배열(2차 배열)
      • 07-2. 배열내장 함수(forEach)
      • 07-3. 배열내장 함수(sort)
      • 07-4. 배열내장 함수(map)
      • 07-5. 배열내장 함수(indexOf)
      • 07-6. 배열내장 함수(filter)
      • 07-7. 배열내장 함수(splice, slice)
      • 07-8. 배열내장 함수(shift, unshift, pop, push)
      • 07-9. 배열내장 함수(concat, join)
      • 07-10. 배열내장 함수(reduce)
      • 07-10. 배열내장 함수(reduce)2
    • 08. 반복문
    • 09. Class와 프로토타입
      • 09-1. 프로토타입과 클래스 - 생성자
      • 09-2. 프로토타입과 클래스 - 생성자 상속하기
      • Class & Constructor & Method
      • super
      • Static Method
      • Class Getter, Setter
      • Information Hiding
      • Inheritance & Polymorphism
      • Overriding
      • Abstract Class
      • Interface
    • Math 정리
    • String 정리
    • Array정리
    • Date 정리
      • D-day 구하기
  • 02.Vanilla-JS
    • 01.삼항연산자
    • 02. Truthy and Falsy
    • 03. 단축 평가 논리 계산법
    • 04. 함수 업그레이드 (default parameter/arguments)
    • 05. 조건문 더 스마트하게 쓰기
    • 06. 비구조화 할당 (구조분해) 문법
    • 07. spread 와 rest
      • 함수 파라미터에서의 rest(params)
      • 함수 인자에서의 spread
    • 08. 자바스크립트의 Scope 에 대한 이해
    • 09. Hoisting 이해하기
    • 10. Native DOM 선택
  • 03.비동기 처리
    • 01. fetch, then, catch[Promise] 이해하기
    • 02. 직접 만들어보는 Promise 객체
    • 03. async/await
    • 04. Promise all, Promise.race
  • REST API 제대로 알고 사용하기
    • mongodb Atlas
    • mongodb Atlas(DB)에 접근하려면
    • URL 이름짓기 관습
    • Database에 자료 저장하는 법
    • 게시물마다 번호를 달아 저장하기
    • 게시물마다 번호를 달아 저장하기2
  • JQUERY + SCRIPT 유용한 코드 정리
  • Practice(실습)
    • 카운터 만들기
    • reduce
    • 데이터 자료형 활용하기1
    • 데이터 자료형 활용하기2
    • 데이터 가지고 놀기(응용)1
    • 데이터 가지고 놀기(응용)2
    • REST API
    • 배열 만들기1
    • 배열 만들기2
    • 배열 만들기3
    • 비구조화 할당
    • rest + spread(응용)1
    • rest + spread(응용)2
    • rest + spread(응용)3
    • 반복문 내장함수(응용)1
    • 함수 가지고 놀기(응용)1
    • 서버와의 통신1
    • 서버와의 통신2
    • new Promise(응용)2
    • new Promise(응용)3
    • 자바스크립트 이벤트 위임 핵심 정리
Powered by GitBook
On this page
  • JSON 데이터 일반적으로 받아오기
  • JSON 데이터 화면에 출력하기
  • JSON 데이터 템플릿 만들어서 화면에(원하는 위치에) 출력하기

Was this helpful?

  1. Practice(실습)

rest + spread(응용)3

다음과 같은 데이터가 있다고 해봅시다. 이런것은 나중에 API문서 등등 데이터를 받오는 것이다 라고 생각해주세요.

JSON 데이터 일반적으로 받아오기

// get.json
{
    "Americas": {
        "korea": [
            {
                "nation": "Seoul, South Korea",
                "name": "Mirae Asset Global Investments",
                "address": "13F, Tower1, 33, Jong-ro, Jongno-gu, Seoul, South Korea",
                "tel": "1577-1640",
                "link": "https://www.am.miraeasset.com/",
                "lat": 37.5619416,
                "lng": 127.00432739999997
            },
            {
                "nation": "Seoul, South Korea",
                "name": "Mirae Asset Daewoo",
                "address": "East Tower, Mirae Asset CENTER1 Bldg, 26, Eulji-ro 5-gil, Jung-gu, Seoul, South Korea",
                "tel": "1588-6800",
                "link": "https://english.miraeassetdaewoo.com/",
                "lat": 37.568293,
                "lng": 126.98470700000007
            },
            {
                "nation": "Seoul, South Korea",
                "name": "Mirae Asset Life Insurance",
                "address": "56, Gukjegeumyung-ro, Yeongdeungpo-gu, Seoul, South Korea",
                "tel": "1588-0220",
                "link": "http://life.miraeasset.com/eng_new/html/index.html",
                "lat": 37.5221883,
                "lng": 126.92971520000003
            }
        ],
        "japan": [
            {
                "nation": "Tokyo, Japan",
                "name": "Global X Japan",
                "address": "",
                "tel": "",
                "link": "https://globalxetfs.co.jp/en/",
                "lat": -6.2262724,
                "lng": 106.8085939
            },
            {
                "nation": "Tokyo, Japan",
                "name": "Global X Japan2",
                "address": "",
                "tel": "",
                "link": "https://globalxetfs.co.jp/en/",
                "lat": -6.2262724,
                "lng": 106.8085939
            }
        ]
    }
}
<script>
    $(function(){
        $.getJSON("/data/get.json", function (data) { //jqury로 get.json파일에 접근했습니다.
                
        }).done(function(data){ // 서버에 성공적으로 접근하면 다음 코드를 실행해주세요.!
            console.log(data);
           
            var {korea: [ ...aniKorea ]} = data.Americas; // {데이터 위치명: [배열의 각 원소들을 가변적으로 받는다.]} = 데이터 있는 위치
            var {japan: [ ...aniJapan ]} = data.Americas; // {데이터 위치명: [배열의 각 원소들을 가변적으로 받는다.]} = 데이터 있는 위치
    
           var extractedkorea = {ko: [ ...aniKorea ]}  // {원하는 키명 : [복사해온 데이터들]}
           var extractedJapan = {jp: [ ...aniJapan ]}  // {원하는 키명 : [복사해온 데이터들]}
    
           console.log(extractedkorea);
           console.log(extractedJapan);
        });
    });
</script>
// 결과)

Object
ko: (3) [{…}, {…}, {…}]
__proto__: Object

Object
jp: (2) [{…}, {…}]
__proto__: Object

이제 데이터를 복사해서 가져왔으니, 원하는 데이터만 화면에 출력해봅시다.

JSON 데이터 화면에 출력하기

 <script>
    $(function(){
        $.getJSON("/data/get.json", function (data) {
                
        }).done(function(data){
            console.log(data);
           // 원본데이터를 복사해오는 코드 
            var {korea: [ ...aniKorea ]} = data.Americas; // 데이터 위치명: [배열의 각 원소들을 가변적으로 받는다.] = 데이터 있는 위치
            var {japan: [ ...aniJapan ]} = data.Americas; // 데이터 위치명: [배열의 각 원소들을 가변적으로 받는다.] = 데이터 있는 위치

           var extractedkorea = {ko: [ ...aniKorea ]}  // {원하는 키명 : [복사해온 데이터들]}
           var extractedJapan = {jp: [ ...aniJapan ]}  // {원하는 키명 : [복사해온 데이터들]}

            console.log(extractedkorea);
            console.log(extractedJapan);
            extractedkorea.ko.forEach((element) => { // 데이터 배열을 반복해서 접근하여 
                $('body').append(element.name + ' / ')  // 원하는 데이터만 출력한다.
            });

            extractedJapan.jp.forEach((element) => { // 데이터 배열을 반복해서 접근하여 
                $('body').append(element.name + ' / ')  // 원하는 데이터만 출력한다.
            })
        });
    });
</script>

결과는 다음과 같습니다.

JSON 데이터 템플릿 만들어서 화면에(원하는 위치에) 출력하기

<div class="main">
    <ul class="lists korea">
    
    </ul>

    <ul class="lists japan">
    
    </ul>
</div>
<script>
$(function(){
    var templateGroble; //템플릿을 공유해서 사용하기 위함!
    var templates = function(data) {
        if(!data.link){
            var template = '';
            template += '<li>';
            template += '<p>'+data.name+'</p>';
            template += '<p>'+data.tel+'</p>';
            template += '<span>'+data.nation+'</span>';
            template += '</li>';
            templateGroble = template;
        } else {
            var template = '';
            template += '<li>';
            template += '<p>'+data.name+'</p>';
            template += '<p>'+data.tel+'</p>';
            template += '<a href="'+data.link+'">'+data.nation+'</a>';
            template += '</li>';
            templateGroble = template;
        }
    };

    $.getJSON("/data/get.json", function (data) {
    }).done(function(data){
        console.log(data);
       
        var {korea: [ ...aniKorea ]} = data.Americas; // 데이터 위치명: [배열의 각 원소들을 가변적으로 받는다.] = 데이터 있는 위치
        var {japan: [ ...aniJapan ]} = data.Americas; // 데이터 위치명: [배열의 각 원소들을 가변적으로 받는다.] = 데이터 있는 위치

       var extractedkorea = {ko: [ ...aniKorea ]}  // {원하는 키명 : [복사해온 데이터들]}
       var extractedJapan = {jp: [ ...aniJapan ]}  // {원하는 키명 : [복사해온 데이터들]}

        extractedkorea.ko.forEach(function(el, i) { // 데이터 배열을 반복해서 접근합니다. 
            templates(el)
            $('.korea').append(templateGroble)
        });

        extractedJapan.jp.forEach((el) => { // 데이터 배열을 반복해서 접근합니다. 
            templates(el)
            $('.japan').append(templateGroble)
        })
    });
});
</script>
Previousrest + spread(응용)2Next반복문 내장함수(응용)1

Last updated 5 years ago

Was this helpful?

1KB
main.html.zip
archive
JSON 데이터 가지고 놀기