javascript - 将多个json对象转换为对象数组
问题描述
我的数据目前以这种格式存储:
{
"Site1":{
"week":[
{
"access":1
},
{
"access":8
}
]
},
"Site2":{
"week":[
{
"access":16
}
]
},
"Site3":{
"week":[
{
"access":2
},
{
"access":6
},
{
"access":2
}
]
}
}
我需要把它转换成这种格式:
[
{
"id":"Site1",
"access":[1,8]
},
{
"id":"Site2",
"access":[16]
},
{
"id":"Site3",
"access":[2,6,2]
}
]
如您所见,我还需要获取键(站点名称)并将它们设为“id”值。
关于如何在 JavaScript 中执行此操作的任何想法(我正在使用 angular v9)?我不太擅长重组这种类型的数据。
解决方案
您可以先获取entries
然后映射它:
var data={ "Site1":{ "week":[ { "access":1 }, { "access":8 } ] }, "Site2":{ "week":[ { "access":16 } ] }, "Site3":{ "week":[ { "access":2 }, { "access":6 }, { "access":2 } ] }};
var result = Object.entries(data).map(([k,v])=>({id:k, access: v.week.map(p=>p.access)}));
console.log(result);
推荐阅读
- javascript - 按下按钮加载结果后滚动到结果
- python - 这是 Python 可解析的已知数据格式吗?
- r - data.table:分组并使用带有变量的`get`来指定要汇总的列很慢
- c++ - 通过服务启动进程后来自 SHGetKnownFolderPath 的错误 0x80070005
- python - 打印唯一数字的总和
- c++ - 使用抽象多态类型初始化 C++ 2D shared_ptr 数组
- javascript - 为使用 preventDefault() 设置父级的嵌套菜单启用最后一个子链接单击;
- ios - 从服务器获取 CKC 后 iOS FairPlay 视频不播放
- c++ - 在 C++ 模板中将变量作为参数传递
- angular - 延迟加载模块中 Angular Material 日期选择器的语言切换