gpt4 book ai didi

arrays - 在 nodejs 中转换 json 响应

转载 作者:搜寻专家 更新时间:2023-11-01 00:47:43 25 4
gpt4 key购买 nike

我正在尝试转换一个 json 响应代码,但我一直得到一个字符串数组。 header 字段取决于我查询的表,因此我不能对它们进行硬编码。

我收到一个 json 响应,例如:

{
"records": [
[
1,
"page one",
300
],
[
2,
"page 2",
500
]
],
"header: [
"page_id",
"page_name",
"total"
]
}

但我想将其转换为

{
[
{
"page_id": 1,
"page_name": "page one",
"total": 300
},
{
"page_id": 2,
"page_name": "page 2",
"total": 500
}
]
}

我尝试创建一个数组并将其转换为 json,但它仍然返回一个字符串数组,而不是 json 数组

let array = new Array;
records.forEach((record) => {
const parts = [];
let i = 0;
header.forEach((title) => {
const part = title + ': ' + record[i];
parts.push(part);
i++;
});
array.push(JSON.parse(JSON.stringify(parts)));
});
console.log(array) // Shows a string array?

我希望

{
[
{
"page_id": 1,
"page_name": "page one",
"total": 300
},
{
"page_id": 2,
"page_name": "page 2",
"total": 500
}
]
}

但实际

[
[ 'page_id: 1', 'page_name: page 1', 'total: 300'],
[ 'page_id: 2', 'page_name: page 2', 'total: 500']
]

最佳答案

你这样做的方式的问题是,你正在创建一个数组并将值推送到它,而你想要做的是创建数组并将包含你的值的对象推送到它...

这可以使用 map(此处的文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)用少量代码完成

results.records.map((arr)=> ({
page_id: arr[0],
page_name: arr[1],
total: arr[2]
});

也可以这样解构

results.records.map(([page_id, page_name, total])=> ({
page_id,
page_name,
total,
});

关于arrays - 在 nodejs 中转换 json 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57099537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com