如何通过在javascript/nodejs中为node元素赋值来格式化JSON



我有下面这样的JSON,它包含每个带有字段值的元素

"batchControlInfo" : {
"sender" : {
"_value" : "MMRPT"
},
"recipient" : {
"_value" : "AAZTE"
},
"fileSequenceNumber" : {
"_value" : 30
},
"fileCreationTimeStamp" : {
"localTimeStamp" : {
"_value" : 20200904052019
},
"utcTimeOffset" : {
"_value" : "+0630"
}
}
}

如何将其转换为如下所示,只是为了删除每个节点元素共有的_value。

"batchControlInfo" : {
"sender" : "MMRPT",
"recipient""AAZTE",
"fileSequenceNumber" : 30,
"fileCreationTimeStamp" : {
"localTimeStamp" :  20200904052019,
"utcTimeOffset" : "+0630"
}
}

这可以递归地完成,如下所示。

const input = {
"batchControlInfo" : {
"sender" : {
"_value" : "MMRPT"
},
"recipient" : {
"_value" : "AAZTE"
},
"fileSequenceNumber" : {
"_value" : 30
},
"fileCreationTimeStamp" : {
"localTimeStamp" : {
"_value" : 20200904052019
},
"utcTimeOffset" : {
"_value" : "+0630"
}
}
}
};
function getResult(input) {
const output = {};
for (const key in input) {
if (input[key] && typeof input[key] === "object") {
if ("_value" in input[key]) {
output[key] = input[key]["_value"];
} else {
output[key] = getResult(input[key]);
}
}
}
return output;
}
console.log(getResult(input));

最新更新