繁体   English   中英

访问 JSON 对象数组中的单个数组元素

[英]accessing individual array elements in an array of JSON object

我有一个 JSON 对象数组 - 每个键在一个数组中都有多个值,如下所示:

{
  "1": [
    "hi",
    "hello"
  ]
}

如何访问单个元素“hi”和“hello”?

我在下面尝试过但不起作用

//suppose var imdb = [] contains the above array of JSON object
for (var i = 0; i < imdb.length; i++) {
  var object = imdb[i];
  var strArray = JSON.stringify(object, null, 2);
  console.log(strArray) //prints the above
  console.log(imdb[1][0]) // throws error, was expecting to print "hi"
}

你可以这样做 -

 let data = [ { "1": [ "hi", "hello" ] }, { "2": [ "hi again", "hello again" ] } ] function foo(data) { data.forEach(obj => { for(let prop in obj) { obj[prop].forEach(x => console.log(x)); } }) } foo(data);

它的作用是——

  1. 遍历最外层数组
  2. 获取对象的键(它是被迭代的数组的当前元素)
  3. 遍历此键的值(它是一个数组),并打印每个项目。

您可以使用JSON.parse()从原始 JSON 响应中获取data的正确表示。


为了您的原代码,如果你想在一个特定的位置印刷阵列值,比如"hi"从第二个对象,从第一个对象,而“喜试”,这里是修改后的代码-

function bar(imdb) {
   // parse imdb first, then -
   for (var i = 0; i < imdb.length; i++) {
     var object = imdb[i];
     var objectKey = Object.keys(object)[0];
     console.log(object[objectKey][0]);
  }
}

Object.keys(object)[0]将返回您正在迭代的当前对象的键( "1""2" ),并使用object[objectKey][0] ,您可以在0处打印元素键值的第 th 个索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM