【发布时间】:2012-02-28 16:48:14
【问题描述】:
我查看了很多示例,但找不到任何可以解决问题的方法。我有以下格式的 json 数组;
{ "value" : [
{ "...some variables...",
"comments" : [
{ "user_name" : "arascanakin",
"picture_url" : "...some url..."
}
],
"error" : false,
"msg" : "some message"
}
附:可能存在语法错误,我已经手动编写了 JSON 数组。没错。
我有以下 jQuery 来遍历数组:
$.each($task_array, function (i, task)
{
// some stuff
$.each(task.comments, function(i, $task_comment)
{
// some stuff
// $task_comment is undefined here
});
});
问题是当我将每个评论元素设置为$task_comment 时,task.comments 未定义。
有解决这个问题的想法吗?这对我来说似乎是正确的,但我读到 JavaScript 不允许多维数组。
【问题讨论】:
-
如果您的 JSON 数据正确,那么您的问题与 JSON 无关,而是与如何访问 JavaScript 对象/数组有关。你是对的,JavaScript 没有多维数组,但你当然可以有数组的数组。这里没什么好说的,真的。如果
task.comments是一个数组,那么$task_comment将是数组条目的值:jsfiddle.net/7yJkG。数据似乎与您想象的不一样,请仔细检查。 -
你试过经典的javascript吗?像
tsk = task.comments; for(var i = 0; i < tsk.length; i++) { //do something with tsk[i]; } -
我通过 json_encode($return) 语句发送这个 json。我不手动给json。
-
$task_comment.user_name和$task_comment.content给出了正确的值,但我仍然收到此错误;无法读取未定义 line_no 的属性“长度”:每次迭代第二次@FelixKling -
请创建一个jsfiddle.net 演示,并提供更完整的示例(更多数据,更多代码)。
标签: javascript jquery json multidimensional-array