2016-11-23 53 views
0

什麼是函數(json)json參數,它是sample.json文件嗎? val的論點是什麼?在一些例子中,var鍵的外觀如何?作爲參數的函數如何在這個示例代碼中起作用?JSON forEach()和函數作爲參數說明

$.getJSON("sample.json", function(json) { 

    json.forEach(function(val) { 
    var keys = Object.keys(val); 
+0

它的響應數據....會是一個解析JSON對象 –

+1

* *「我已經通過網絡沃萊搜索」嗯。 –

+2

當然不是「整個網絡」,如果你看看['.getJSON'](http://api.jquery.com/jquery.getjson/)和['Array.forEach']的文檔(https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach),您會立即找到答案 – adeneo

回答

2
$.getJSON("sample.json", function(json) { 

$.getJSON被調用「sample.json」一個JSON文件,這個文件是在「JSON」可變至極是你的函數內部分配。

json.forEach(function(val) { 

由於JSON是 「JavaScript對象符號」,我們知道您的變量JSON對象,這就是爲什麼你可以使用函數Object.forEach(),它可以作爲一個for..in..

var keys = Object.keys(val); 

Object.keys(val)這裏,你的可變VAL必須是一個對象陣列,一個d將回報所有指標你的對象/數組(VAL),因此,所有的內部的索引你的文檔中bringed的JSON 「sample.json」,將添加了此方法到您的變量keys

例如:

$.getJSON("/json/sample.json", function(json) { 

    var html = ""; 

    json.forEach(function(val) { // Iterates in the json 
     var keys = Object.keys(val); // Assignes the indexes to the var keys 

     html += "<div>"; // Opens and appends a div element 

     keys.forEach(function(key) { // Appends the element of the object/array at each index (key) 
     html += "<strong>" + key + "</strong>" 
     }); 

     html += "</div><br>"; // Closes the div element and starts a new line 
    }); 
0

功能是隻是一個回調,所以一旦sample.json文件已被提取並解析它會運行該函數內的代碼,用「JSON」作爲參考變量

0

的結果JQuery $.getJSON()方法是一個JavaScript對象表示法結構。該響應作爲第一個參數自動傳遞給提供的成功回調函數(本例中爲json)。它不必被稱爲json,這只是參數的任意名稱,您可以將其稱爲任何合法標識符。

接收到參數後,結構將被遍歷一個.forEach(),其中提供另一個函數作爲遍歷每個項目的回調函數。

Here is the documentation for JQuery's getJSON method.

0

在該示例中,json爲將被傳遞到getJSON回調的第一個參數的參數名。這將是解析 JSON的結果(因此不再是JSON,它將是一個對象圖)。

代碼期望JSON將數組定義爲頂級項目,並且調用Array.prototype.forEachval自變量  — forEach的第一個參數  —將按順序排列該數組中的每個元素。

更多的jQuery documentationMDNFor-each over an array in JavaScript?