【发布时间】:2012-10-22 21:35:19
【问题描述】:
我真的很想有一个快速的方法来循环遍历 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"
]
}]
}
我找不到任何包含嵌套 JSON 的有用示例,即使在 StackOverflow 中也是如此。
循环遍历每个元素并将其分配给表格单元格的最有效方法是什么? HTML 输出并不重要 - 我知道如何制作表格...如何获得“星星”?
当我使用 Chrome 控制台并简单地使用 $.getJSON('/example'); 时,我会在 responseText 中返回整个 JSON,以 "{"date":"2012-10-18 ,"data": [{"title": "The Princess Bride", 开头但是在 JSON 文档、$.getJSON 上的 JQuery 文档和任何 JavaScript 示例中都不能我找到了对responseText 的引用。所以,我迷路了。 $.getJSON 需要什么参数来对象化 responseText?
【问题讨论】:
-
关于您的最后一条评论,您需要对其进行解析。试试
var myData = JSON.parse(responseText);您可能会发现将其输出到控制台也很有帮助:console.log(myData)然后您可以执行var someStars = myData.data[0].stars;之类的操作,如果您对循环数据有任何疑问,请告诉我。
标签: javascript jquery ajax json