首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在尝试更改JSON的格式以嵌套具有新键的元素

问正在尝试更改JSON的格式以嵌套具有新键的元素
EN

Stack Overflow用户
提问于 2021-01-23 13:02:08
回答 2查看 41关注 0票数 1

我正在尝试将web应用程序输出的JSON格式转换为图形可视化工具cytoscape.js可以读取的格式。我相当确定有一个简单的javascript解决方案,但我对JS还很陌生。

我得到的JSON输出是这个示例格式:

代码语言:javascript
复制
[
{"name": "squirtle", "type": "water"}, 
{"name": "charmander", "type": "fire"}, 
{"name": "bulbasaur", "type": "grass"}
]

数据所需的输出cytoscape.js格式略有不同,每个元素前面都有'data :‘(我假设这是cytoscape.js读取的关键字?)

代码语言:javascript
复制
[
{ "data": {"name": "squirtle", "type": "water"} },
{ "data": {"name": "charmander", "type": "fire"} },
{ "data": {"name": "bulbasaur", "type": "grass"} }
]

我尝试过解析,然后迭代每个元素,以连接前面的"data“部分,如下面的代码片段所示:

代码语言:javascript
复制
  pokemonJSON.forEach(element => {
    element = 'data: {' + element +'}';  
    console.log(element)
  });

这似乎是一个类型不匹配,因为它返回此输出三次:

代码语言:javascript
复制
data: {[object Object]}

我看到过其他的例子,它们似乎表明map或reduce可能是合适的,但我不能完全理解它们的正确实现。

任何帮助都将不胜感激。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-23 13:13:36

如果您想要更改原始数组:

​

代码语言:javascript
复制
const pokemonJSON = 
  [ { "name": "squirtle",   "type": "water" }
  , { "name": "charmander", "type": "fire"  }
  , { "name": "bulbasaur",  "type": "grass" }
  ]

pokemonJSON.forEach((el,i,arr)=>
  {
  arr[i] = { data : el }
  })
  
console.log( pokemonJSON )
代码语言:javascript
复制
.as-console-wrapper { max-height: 100% !important; top: 0; }

​

票数 2
EN

Stack Overflow用户

发布于 2021-01-23 13:09:10

你可以做到的

​

代码语言:javascript
复制
const data = [{
    "name": "squirtle",
    "type": "water"
  },
  {
    "name": "charmander",
    "type": "fire"
  },
  {
    "name": "bulbasaur",
    "type": "grass"
  }
];

const output = data.map(x => {
  return {
    data: x
  }
});

console.log(output);

​

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

https://stackoverflow.com/questions/65855911

复制
相关文章

相似问题

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