Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问JSON对象中的嵌套数组?_Javascript_Json_Arrays_Object - Fatal编程技术网

Javascript 如何访问JSON对象中的嵌套数组?

Javascript 如何访问JSON对象中的嵌套数组?,javascript,json,arrays,object,Javascript,Json,Arrays,Object,我正在使用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]);

我正在使用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]);
   }
}
但是,这不允许我访问
parent1
child1、child2、child
。对密钥发出警报本身显示“parent1”,但当我尝试对其内容发出警报时,会发现未定义

我想它会给我一个对象/数组?如何访问parent1的孩子


data[key][0]?

返回的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]);

您可以在变量中指定它,如下所示:

var=数据[键]

然后使用数组的大小获取数组的内容


希望这能有所帮助。

您只在对象中迭代了一个级别,因此您只看到父对象是正确的。你得潜入那些钥匙里去找孩子们

// 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
  }
}
//通常,避免使用JavaScript中的“foreach”形式。
对于(变量i=0;i

另外,父键上的[]后缀也可以。它是有效的JSON。

除非我的眼睛欺骗了我,否则唯一的区别是您将parent1[]重命名为parent1,将parent2[]重命名为parent2。这将如何修复代码?:/“parents”是我的HTML表单中输入的名称。输入是数组,因此用[]命名。好的,所以您不必像我那样重命名。但是您仍然可以通过以下方式访问它们:for(var i=0;i