繁体   English   中英

如何获得二级Json值

[英]How to get second level Json value

我正在尝试在响应中遍历第二级json值。

这是Json的示例:

  {

  "Links": {},

 "Items": [

  {

  "WebId": "A0EUfSms148rEStZ8_fh",

  "Name": "AA to Slurry ",

  "Path": "klj",

  "Links": {

    "Source": ""

  },

  "Items": [

    {

      "Timestamp": "2016-08-21T05:14:27.0180053Z",

      "Value": 0.0154830571,

      "UnitsAbbreviation": "%",

      "Good": true,

      "Questionable": false,

      "Substituted": false

    },

    {

      "Timestamp": "2016-08-21T05:14:30Z",

      "Value": 0.0155982981,

      "UnitsAbbreviation": "%",

      "Good": true,

      "Questionable": false,

      "Substituted": false

    },

    {

      "Timestamp": "2016-08-21T05:14:30Z",

      "Value": 0.0155982981,

      "UnitsAbbreviation": "%",

      "Good": true,

      "Questionable": false,

      "Substituted": false

    },

    {

      "Timestamp": "2016-08-21T05:14:33.024002Z",

      "Value": 0.0155704552,

      "UnitsAbbreviation": "%",


  "Items": [

{

  "WebId": "A0EUfSms148rEStZ8_fh",

  "Name": “Slurry ",

  "Path": "klj",

  "Links": {

    "Source": ""

  },

  "Items": [

    {

      "Timestamp": "2016-08-21T05:14:27.0180053Z",

      "Value": 0.0154830571,

      "UnitsAbbreviation": "%",

      "Good": true,

      "Questionable": false,

      "Substituted": false

    },

    {

      "Timestamp": "2016-08-21T05:14:30Z",

      "Value": 0.0155982981,

      "UnitsAbbreviation": "%",

      "Good": true,

      "Questionable": false,

      "Substituted": false

    },

    {

      "Timestamp": "2016-08-21T05:14:30Z",

      "Value": 0.0155982981,

      "UnitsAbbreviation": "%",

      "Good": true,

      "Questionable": false,

      "Substituted": false

    },

    {

      "Timestamp": "2016-08-21T05:14:33.024002Z",

      "Value": 0.0155704552,

      "UnitsAbbreviation": "%",

到目前为止,这是我仅返回名称的代码:

  var feat = resp.Items,
        tableData = [];

    // Iterate over the JSON object
    for (var i = 0, len = feat.length; i < len; i++) {
        tableData.push({
            "name": feat[i].Name,
            "Timestamp": feat[i].Timestamp,
            "value": feat[i].Items.Value,

        });
    }

因此,在此示例中,此示例表数据理想情况下将如下所示:

name        | Timestamp | value
AA to Slurry  
AA to Slurry
AA to Slurry
AA to Slurry
AA to Slurry
AA to Slurry 
Slurry 
Slurry
Slurry
Slurry
Slurry
Slurry

具有来自第二级“项目”的相应时间戳和值。 现在我得到的只是名称值,如何获得名称然后遍历第二级项目?

我认为您的问题是您的sub Items数组被直接访问。 feat[i].Items.Value )相反,您也应该遍历第二个数组。 我将这段代码放在一起开始使用,它遍历您拥有的json中的项目,然后遍历第一个数组的每个项目中的项目。

json.Items.forEach(function(item){
  item.Items.forEach(function(subItem){
    tableData.push({
      'name':item.Name,
      'timestamp':item.TimeStamp,
      'value':subItem.Value
    });
  });
});

暂无
暂无

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

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