【问题标题】:JSON forEach() and function as a argument explanationJSON forEach() 和函数作为参数解释
【发布时间】:2017-04-07 21:21:03
【问题描述】:

什么是function(json) json 参数,是sample.json 文件吗?什么是 val 论点?在某些示例中,var 键的外观如何?函数作为参数在这个示例代码中是如何工作的?

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

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

【问题讨论】:

  • 这是响应数据.... 将是一个解析的 json 对象
  • “我已经搜遍了整个网络”嗯嗯。
  • 肯定不是“整个网络”,如果您查看 $.getJSONArray.forEach 的文档,您会立即找到答案

标签: javascript jquery foreach getjson


【解决方案1】:
$.getJSON("sample.json", function(json) {

$.getJSON 得到一个名为 "sample.json" 的 json 文档,该文档分配在您的函数内部的 "json" 变量中。

json.forEach(function(val) {

由于 JSON 是“JavaScript Object Notation”,我们知道您的变量 json 是一个 object,这就是您可以使用函数 Object.forEach() 的原因,它的工作原理是for..in..,

var keys = Object.keys(val);

Object.keys(val)这里,你的变量val必须是object或者array,这个方法会返回 您的对象/数组 (val) 中的所有 索引,因此,所有 索引内 是您在文档中带来的 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
    });

【讨论】:

    【解决方案2】:

    该函数只是一个回调,因此一旦 sample.json 文件被获取并解析,它将运行函数内的代码,使用 'json' 作为引用变量

    【讨论】:

      【解决方案3】:

      JQuery $.getJSON() 方法的结果是一个 JavaScript Object Notation 结构。该响应会作为第一个参数自动传递给提供的成功回调函数(在本例中为json)。它不一定非得叫json,这只是参数的任意名称,你可以称它为任何合法的标识符。

      在接收到参数后,然后使用 .forEach() 遍历结构,其中提供另一个函数作为遍历的每个项目的回调。

      Here is the documentation for JQuery's getJSON method.

      【讨论】:

        【解决方案4】:

        在该示例中,json 是将传递给getJSON 回调的第一个参数的参数名称。这将是解析 JSON 的结果(因此不再是 JSON,它将是一个对象图)。

        代码期望 JSON 将数组定义为顶级项,并调用 Array.prototype.forEachval 参数——forEach 的第一个参数——将依次是该数组中的每个元素。

        jQuery documentationMDNFor-each over an array in JavaScript? 中的更多信息。

        【讨论】:

          猜你喜欢
          • 2023-03-10
          • 2014-06-01
          • 2019-06-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多