我正在使用PHP返回一个json_encode()'d数组,以便在我的Javascript代码中使用。它被返回为:
{"parent1[]":["child1","child2","child2"],"parent2[]":["child1"]}
通过使用以下代码,我可以访问parent2 > child1
$.getJSON('myfile.php', function(data)
{
for (var key in data)
{
alert(data[key]);
}
}
但是,这不允许我访问child1, child2, child
parent1
。警告键本身显示'parent1',但当我尝试提醒它的内容时,我得到了未定义。
我想它会给我一个对象/数组?如何访问parent1的子项?
data [key] [0]?
答案 0 :(得分:1)
返回的JSON应为:
{"parent1":["child1","child2","child2"],"parent2":["child1"]}
然后你可以访问它们:
var data = {"parent1":["child1","child2","child2"],"parent2":["child1"]}
alert(data['parent1'][0]);
alert(data['parent1'][1]);
alert(data['parent1'][2]);
答案 1 :(得分:1)
你只是在对象中迭代一个级别,所以你只看到父母是正确的。你需要下载这些键才能找到孩子们。
// Generally, avoid the "foreach" form in JavaScript.
for (var i = 0; i < data.length; i++) {
alert(data[i]); // Parent1[], Parent2[], etc
var parent = data[i];
for (var j = 0; j < parent.length; j++) {
alert(parent[j]); // Child1, Child2, etc
}
}
除此之外,父键上的[]后缀是可以的。它是有效的JSON。
答案 2 :(得分:0)
您可以按如下方式将其分配给变量:
var = data [key];
然后使用数组的大小获取数组的内容。
希望有所帮助。