javascript - Javascript 对象转换
问题描述
我正在使用地图来转换 JSON。我得到的是一个数据数组,而不是单个对象。截图如下。
我正在尝试实现以下 JSON
{
"data": {
"test1": {
"abc": {
"size": "big",
"id": "1"
}
},
"test2": {
"abc": {
"size": "small",
"id": "2"
}
}
}
}
但是得到以下 JSON
{
"data": [{
"test1": {
"abc": {
"size": "big",
"id": "1"
}
}
}, {
"test2": {
"abc": {
"size": "big",
"id": "2"
}
}
}]
}
这是我的代码。
const test = [{ id: 'ddec9c7f-95aa-4d07-a45a-dcdea96309a9',
ad_id: 'test1',
country: 'ID',
abc: { size: 'big', id: '1' },
},
{ id: 'ddec9c7f-95aa-4d07-a45a-dcdea96309a9',
ad_id: 'test2',
country: 'ID',
abc: { size: 'small', id: '2' },
},
];
const transformedTest = test.map(result =>
({ [result.ad_id]: { abc: result.abc } }));
const data = { data: transformedTest };
console.log(JSON.stringify(data));
任何帮助将不胜感激
解决方案
尝试这个:
const test = [
{
"id": "ddec9c7f-95aa-4d07-a45a-dcdea96309a9",
"ad_id": "test1",
"country": "ID",
"abc": {
"size": "big",
"id": "1"
}
},
{
"id": "ddec9c7f-95aa-4d07-a45a-dcdea96309a9",
"ad_id": "test2",
"country": "ID",
"abc": {
"size": "big",
"id": "2"
}
}
];
const result = test.reduce((acc,{ad_id, abc})=> (acc.data[ad_id] = {abc}, acc),{data:{}})
console.log(result);
推荐阅读
- 2d - 与两个运动物体的二维碰撞
- mysql - DataStudio 中与 MySQL 数据库的连接丢失
- c# - 如何通过 WCF 服务发送 PDF 文件?
- amazon-web-services - AWS中ETL流程的最佳方式是什么
- angular - Angular Route Animations 不工作(我正在使用来自 angular.io 的官方文档的示例动画)
- c# - 为什么不能推断这个泛型类的类型参数?
- angular - 如何将@Input 发送到多个组件?
- python-3.x - kivy 应用程序适用于计算机,但不适用于移动设备
- nodatime - 尝试将 Microsoft Windows BCL 区域映射到 Tzdb 区域以访问其缩写值
- javascript - 如何从 Nuxt.js SPA 运行 Python 脚本?