javascript - 如何获取二级Json值

标签 javascript jquery json

我正在尝试迭代响应中的第二级 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

具有第二级“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
    });
  });
});

关于javascript - 如何获取二级Json值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39811746/

相关文章:

javascript - 使用 JSON 填充 javascript 变量

javascript - 当所有删除操作成功执行时返回 bool 值 (true | false)

javascript - 简单的 angular.js 示例有时无法加载

javascript - js mysql php select2.js 向下拉列表添加 2 个值 其中一个应该从 js 调用

javascript - moment.js 日期会添加,但时间不会

javascript - 使用以 '#' 字符开头的键读取 json 对象

javascript - 在 nextjs 中将 Prop 从一个页面传递到另一个页面

javascript - 使用特定的 id,如何使用 jQuery 更改 href?

jQuery 多个选择器但缓存在变量中

jquery - 缓存自动完成 JSON 响应