11 week blog

Obtaining the JSON:git

1.首先,咱們將把要檢索的JSONURL存儲在變量中。github

2.要建立請求,咱們須要使用new關鍵字從XMLHttpRequest構造函數建立一個新的請求對象實例。web

3.如今咱們須要使用open ( )方法(XMLHttpRequest.open():初始化請求。此方法將從JavaScript代碼中使用;要從本機代碼初始化請求,請改用OpenRequest ( ))打開一個新的請求。添加如下行:json

這至少須要兩個參數——還有其餘可選參數。對於這個簡單的例子,咱們只須要兩個強制性的例子:服務器

發出網絡請求時使用的HTTP方法。在這種狀況下,GET很好,由於咱們只是檢索一些簡單的數據。網絡

向其發出請求的URL——這是咱們以前存儲的JSON文件的URLapp

4 .接下來,添加如下兩行——在這裏,咱們將responsetType設置爲JSON,這樣XHR就知道服務器將返回JSON,而且這應該在幕後轉換爲JavaScript對象。dom

5 .本節的最後一部分涉及等待服務器返回響應,而後處理它。函數

代碼以下:spa

 1     <script>
 2     var header = document.querySelector('header');
 3     var section = document.querySelector('section');
 4     var requestURL =  'https://raw.githubusercontent.com/Bulalalala-Ly/package/master/yinshi-json/1.json';
 5     var request = new XMLHttpRequest();
 6     request.open('GET', requestURL);
 7     request.responseType = 'text';
 8     request.send();
 9     request.onload = function() {
10       var ownText = request.response;
11       var own = JSON.parse(ownText);
12       populateHeader(own);
13       showHeroes(own);
14     }
15     function populateHeader(jsonObj) {
16       var myH1 = document.createElement('h1');
17       myH1.textContent = jsonObj['Name'];
18       header.appendChild(myH1);
19       var myPara = document.createElement('p');
20       myPara.textContent = '導演 : ' + jsonObj['Director'] + '  / 首播時間: ' + jsonObj['formed'];
21       header.appendChild(myPara);
22     }
23     function showHeroes(jsonObj) {
24     var heroes = jsonObj['members'];
25         
26     for (var i = 0; i < heroes.length; i++) {
27       var myArticle = document.createElement('article');
28       var myH2 = document.createElement('h2');
29       var myPara1 = document.createElement('p');
30       var myPara2 = document.createElement('p');
31       var myPara3 = document.createElement('p');
32       var myList = document.createElement('ul');
33 
34       myH2.textContent = heroes[i].name;
35       myPara1.textContent = '簡介 : ' + heroes[i].introduction;
36       myPara2.textContent = '出生日期: ' + heroes[i].birth;
37       myPara3.textContent = '表明做品 :';
38           
39       var superPowers = heroes[i].masterworks;
40       for (var j = 0; j < superPowers.length; j++) {
41         var listItem = document.createElement('li');
42         listItem.textContent = superPowers[j];
43         myList.appendChild(listItem);
44       }
45   
46       myArticle.appendChild(myH2);
47       myArticle.appendChild(myPara1);
48       myArticle.appendChild(myPara2);
49       myArticle.appendChild(myPara3);
50       myArticle.appendChild(myList);
51   
52       section.appendChild(myArticle);
53     }
54   }
55 </script>

 

a JSON file base on own website:

代碼以下:

{

    "Name" : "劇名",

    "Director" : "導演名",

    "formed" : 播出年份,

    "introduction" : "簡介", 

    "active" : true,

    "members" : [

      {

        "name" : "演員名",

        "birth" : "出生年月",

        "introduction" : "我的簡介",

        "masterworks" : [

          "「表明做品名」",

          "「表明做品名」",

          "「表明做品名」"

        ]

      },

      {

        "name" : "演員名",

        "birth" : "出生年月",

        "introduction" : "我的簡介",

        "masterworks" : [

          "「表明做品名」",

          "「表明做品名」",

          "「表明做品名」"

        ]

      },

      {

        "name" : "演員名",

        "birth" : "出生年月",

        "introduction" : "我的簡介",

        "masterworks" : [

          "「表明做品名」",

          "「表明做品名」",

          "「表明做品名」"

  ]

      }

    ]

  }

相關文章
相關標籤/搜索