簡體   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