首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用JavaScript重塑扁平JSON结构

用JavaScript重塑扁平JSON结构
EN

Stack Overflow用户
提问于 2020-06-19 14:12:29
回答 1查看 51关注 0票数 0

目前,我有一个平面JSON格式的数据。我们需要将其转换为特定的结构。

代码语言:javascript
复制
[
   {
      "Region":"WEST",
      "District":"PACIFIC",
      "timestamp":"2018-12-28T00:00:00.000Z",
      "Penetration":374
   },
   {
      "Region":"WEST",
      "District":"MOUNTAIN",
      "timestamp":"2018-12-28T00:00:00.000Z",
      "Penetration":427
   },
   {
      "Region":"SOUTH",
      "District":"SOUTH WEST",
      "timestamp":"2018-12-28T00:00:00.000Z",
      "Penetration":422
   },
   {
      "Region":"SOUTH",
      "District":"SOUTH EAST",
      "timestamp":"2018-12-28T00:00:00.000Z",
      "Penetration":410
   }
]

应该是这样的。此外,还需要向每个对象添加一个常量"version": "v1"。平面化的结果集可以是动态的。因此,除了时间戳键之外,任何存在的键值对都应该被拉入到事件对象中。

代码语言:javascript
复制
[
  {
    "version": "v1",
    "timestamp": "2018-12-28T00:00:00.000Z",
    "event": {
      "Penetration":374,
      "Region": "WEST",
      "District": "PACIFIC"
    }
  },
  {
    "version": "v1",
    "timestamp": "2018-12-28T00:00:00.000Z",
    "event": {
      "Penetration":427,
      "Region": "WEST",
      "District": "MOUNTAIN"
    }
  },
  {
    "version": "v1",
    "timestamp": "2018-12-28T00:00:00.000Z",
    "event": {
      "Penetration":422,
      "Region": "SOUTH",
      "District": "SOUTH WEST"
    }
  }
  {
    "version": "v1",
    "timestamp": "2018-12-28T00:00:00.000Z",
    "event": {
      "Penetration":410
      "Region": "SOUTH",
      "District": "SOUTH EAST"
    }
  }           
]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-19 14:17:49

您可以简单地使用map方法:

代码语言:javascript
复制
var data=[ { "Region":"WEST", "District":"PACIFIC", "timestamp":"2018-12-28T00:00:00.000Z", "Penetration":374 }, { "Region":"WEST", "District":"MOUNTAIN", "timestamp":"2018-12-28T00:00:00.000Z", "Penetration":427 }, { "Region":"SOUTH", "District":"SOUTH WEST", "timestamp":"2018-12-28T00:00:00.000Z", "Penetration":422 }, { "Region":"SOUTH", "District":"SOUTH EAST", "timestamp":"2018-12-28T00:00:00.000Z", "Penetration":410 }];

var result = data.map(({timestamp, ...events})=>({version:'v1',timestamp, events}));

console.log(result);

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62464334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档