我真的希望有一个快速而快速的方法来循环遍历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客观化为什么参数?
答案 0 :(得分:11)
尝试
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)
});
});
}
});