gpt4 book ai didi

javascript - 如何使用 javascript 重新格式化嵌套 JSON 并进行重组

转载 作者:太空宇宙 更新时间:2023-11-04 16:02:22 24 4
gpt4 key购买 nike

我的示例 JSON ,我想通过删除“Child:”对象来重建以下 json

{  
"Child":{
"DeviceList":[
{
"Child":null,
"DeviceId":"7405618",
"Signal":"-90"
},
{
"Child":{
"DeviceList":[
{
"Child":{
"DeviceList":[
{
"Child":null,
"DeviceId":"3276847",
"Signal":"-86"
}
]
},
"DeviceId":"2293808",
"Signal":""
}
]
},
"DeviceId":"4915247",
"Signal":"-90"
}
]
}
}

新结构应如下所示

{  
"DeviceList":[
{
"DeviceList":null,
"DeviceId":"7405618",
"Signal":"-90"
},
{
"DeviceList":[
{
"DeviceList":[
{
"DeviceList":null,
"DeviceId":"3276847",
"Signal":"-86"
}
],
"DeviceId":"2293808",
"Signal":""
}
],
"DeviceId":"4915247",
"Signal":"-90"
}
],
"DeviceId":"4915247",
"Signal":"-90"
}

我正在寻找动态 json 树结构的嵌套递归解决方案,其中我的 JSON 内容将类似于提供的示例。

最佳答案

您可以使用迭代和递归方法将 DeviceList 移动到 Child 的位置。

var data = { Child: { DeviceList: [{ Child: null, DeviceId: "7405618", Signal: "-90" }, { Child: { DeviceList: [{ Child: { DeviceList: [{ Child: null, DeviceId: "3276847", Signal: "-86" }] }, DeviceId: "2293808", Signal: "" }] }, DeviceId: "4915247", Signal: "-90" }] } };

[data].forEach(function iter(a) {
if ('Child' in a) {
a.DeviceList = a.Child && a.Child.DeviceList;
delete a.Child;
if (Array.isArray(a.DeviceList)) {
a.DeviceList.forEach(iter);
}
}
});

console.log(data);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何使用 javascript 重新格式化嵌套 JSON 并进行重组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42179369/

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