如何在打字稿的 JSON 字符串数组中将任何 " " 实例替换为 null?



我有一个JSON数组,如下所示:

[
{"test":"a","test1":"1","test2":""},
{"test":"b","test1":"","test2":"hi"}
{"test":"","test1":"3","test2":""}
]

如果有任何带有"的JSON字符串,我希望它看起来像这样"值

[
{"test":"a","test1":"1","test2":null},
{"test":"b","test1":null,"test2":"hi"}
{"test":null,"test1":"3","test2":null}
]

您只需遍历数组,然后遍历对象的每个键,检查是否有空字符串。像这样:

let data = [
{"test":"a","test1":"1","test2":""},
{"test":"b","test1":"","test2":"hi"},
{"test":"","test1":"3","test2":""}
]
for (let entry of data) {
Object.entries(entry).map(obj => {
if (obj[1] === "") entry[obj[0]] = null;
});
}
console.log(data)

您需要一行代码

data= JSON.parse( JSON.stringify(data).replaceAll("""","null").replaceAll("""","""));

此解决方案与高效一样简单

let data = [
{"test":"a","test1":"1","test2":""},
{"test":"b","test1":"","test2":"hi"},
{"test":"","test1":"3","test2":""}
]
for(let objData of data)
for(let propr in objData)
if(objData[propr] === "")
objData[propr] = null;

console.log(data)

循环遍历数组,然后循环遍历每个对象中的所有属性。测试该值是否为空字符串,如果是,请将其替换为null

const data = [
{"test":"a","test1":"1","test2":""},
{"test":"b","test1":"","test2":"hi"},
{"test":"","test1":"3","test2":""}
];
data.forEach(obj => {
Object.keys(obj).forEach(key => {
if (obj[key] === "") {
obj[key] = null;
}
});
});
console.log(data);

最新更新