9

可能重复:
jquery 读取嵌套的 json

我真的很想有一个快速的方法来遍历 JSON 中的多个记录,每个记录都有潜在的深度嵌套。我只是想输出到一个表。

我不确定 $.each() 或 $.ajax() 成功的 javascript 方法需要通过 function() 传递哪些参数。所有示例似乎都使用通用词“数据”或“obj”,但这些让我感到困惑 - 它们是内置函数参数还是我可以随意命名它们:

$.each(foo, function(bar){

});

以及如何跟踪我在循环/嵌套中的位置?

我更喜欢使用 JQuery,但我也应该知道这样做的直接 JavaScript 方法。而且我还想知道是否可以不用一百行代码。

以这个 JSON 为例:

{
  date: " 2012-10-18 16:58:35.104576",
  data: [{
    title: "The Princess Bride",
    rating: "PG",
    length: 128,
    stars: [
      "Gary Elwes",
      "Robin Wright",
      "Christopher Guest"
    ]

  }, {
    title: "This is Spinal Tap",
    rating: "R",
    length: 105,
    stars: [
      "Christopher Guest",
      "Michael McKean",
      "Harry Shearer"
    ]
  }]
}

即使在 StackOverflow 中,我也找不到任何包含嵌套 JSON 的有用示例。

循环遍历每个元素并将每个元素分配给表格单元格的最有效方法是什么?HTML 输出并不重要——我知道如何制作表格……如何获得“星星”?

当我使用 Chrome 控制台时,$.getJSON('/example');我只是在 responseText 中返回了整个 JSON,"{"date":"2012-10-18 ,"data": [{"title": "The Princess Bride",但是在 JSON 文档、$.getJSON 上的 JQuery 文档以及任何 JavaScript 示例中,我都找不到对responseText. 所以,我迷路了。$.getJSON 需要什么参数来客观化 responseText?

4

1 回答 1

14

尝试

obj.data[0].stars      // Will get you the stars in the 1st Object

obj.data[0].stars[0]   // Gary Elwes

小提琴

遍历 Stars 对象你可以试试这个

$.each(obj.data , function(key , value){ // First Level
    $.each(value.stars , function(k , v ){  // The contents inside stars
        console.log(v)
    });        

});

更新的小提琴

编辑

 $.ajax({
      // Parameters 

      success : function(obj){
            $.each(obj.data , function(key , value){ // First Level
                 $.each(value.stars , function(k , v ){  // The contents inside stars
                     console.log(v)
                 });     
            });
      }
  });
于 2012-10-22T21:36:35.103 回答