使用jquery或javascript通过AJAX读取嵌套的JSON并输出到表

时间:2012-10-22 21:35:19

标签: javascript jquery ajax json

  

可能重复:
  jquery reading nested json

我真的希望有一个快速而快速的方法来循环遍历JSON中的多个记录,每个记录都有可能深度嵌套。我只想输出到表格。

我不确定需要通过函数()为$ .each()或$ .ajax()成功的javascript方法传递什么参数。所有的例子似乎都使用通用词“data”或“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"
    ]
  }]
}

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

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

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

1 个答案:

答案 0 :(得分:11)

尝试

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

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

FIDDLE

通过Stars对象进行迭代你可以尝试这个

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

});

UPDATED FIDDLE

修改

 $.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)
                 });     
            });
      }
  });