gpt4 book ai didi

Javascript - 重新映射 JSON,其中所有带前缀的属性都嵌套在前缀下

转载 作者:行者123 更新时间:2023-11-30 13:56:31 25 4
gpt4 key购买 nike

我从内部 API 获得的 JSON 数据完全平坦地返回给我,但每个类别都有一个属性前缀,它应该嵌套在该属性下。在提供的示例中,前缀是 address_

示例 A - 当前格式:

{
name: '',
address_line1: '',
address_city: '',
address_state: '',
address_country: '',
phone: ''
}

示例 B - 所需格式:

{
name: '',
address: {
line1: '',
city: '',
state: '',
country: ''
},
phone: ''
}

实际数据相当广泛,但确实遵循相同的格式,所以我希望完成的是重新映射Example A以适应Example B,无需手动写出 JSON 的每一行。

感谢您的宝贵时间和建议。

最佳答案

你可以这样做:

const input = {
name: '',
address_line1: '',
address_city: '',
address_state: '',
address_country: '',
phone: ''
};

const output = Object.keys(input).reduce((a, key) => {
if (key.includes('_')) {
const [pKey, cKey] = key.split('_');
if (a[pKey]) {
a[pKey][cKey] = input[key];
} else {
a[pKey] = { [cKey]: input[key] };
}
} else {
a[key] = input[key];
}
return a;
}, {});

console.log(output);

这仅适用于 input 对象的第一级,它假定键将仅包含一个 _ 字符,该字符将主键名称与键分开嵌套对象的名称。

关于Javascript - 重新映射 JSON,其中所有带前缀的属性都嵌套在前缀下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57189205/

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