簡體   English   中英

如何從嵌套JSON獲取特定或多個值(或鍵)

[英]How to get a specific or multiple values (or keys) from nested JSON

我有一個包含對象和數組的(嵌套)數據結構。 如何提取信息,即訪問特定或多個值(或鍵)?

  {
    "data": [{
      "name": "name1",
      "value": "value1",
      "list": [{
        "sname": "sname1",
        "svalue": "svalue1"
      }, {
        "sname": "sname2",
        "svalue": "svalue2"
      }]
    }]
  }

jQuery的

var pk = $("#pk").val();
console.log(pk);
url = "/register/search?id=" + pk;
console.log(url);
$('#largeTable').DataTable({
  "ajax": url,
  "bDestroy": true,
  "columns": [{
      "data": "name"
    },
    {
      "data": "value"
    },
    {
      "data": "list.1.sname"
    },
    {
      "data": "list.1.svalue"
    },
    {
      "data": null,
      "defaultContent": editview
    }
  ]
});

在這里可以使用list.1或list.0顯示第一或第二個列表值

但是我一次要兩個值。

另外,我怎么能訪問svalue中的第二項的list

我嘗試了data.list[1]但:

TypeError:data.list未定義

由於data是一個數組,因此您應該首先獲取該項-並且由於只有一項-您將使用data[0] ,然后可以訪問諸如data[0].list[1]類的list屬性-將為您提供list的第二個項目-但由於您對該項目的特定屬性( svalue )感興趣,因此您將像這樣訪問它: data[0].list[1].svalue

更好的方法是遍歷數據數組中的項目-然后對於每個項目,遍歷列表數組中的項目。 參見@Rajesh的評論。 我希望能有所幫助;

具體來說,您可以像object.data[0].list[1].svalue這樣訪問它。 之所以undefined data.list的原因是因為data對應於數組data: [{ }]這就是為什么我們使用data[0] ,但是data本身是對象中的鍵,因此在獲取data之前需要訪問它。 如果data所在的對象名稱是object (如我在下面所做的那樣),則將像此object 一樣訪問它object.data[0]

 const object = { "data": [{ "name": "name1", "value": "value1", "list": [{ "sname": "sname1", "svalue": "svalue1" }, { "sname": "sname2", "svalue": "svalue2" }] }] } console.log(object.data[0].list[1].svalue) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM