TypeScript中如何将JSON对象数组里的空字符串替换为null
解决JSON数组中空字符串替换为null的问题
问题场景
给定以下JSON数组(注:原JSON存在语法错误,第二个对象与第三个对象之间缺少逗号,需修正后再处理):
[{"test":"a","test1":"1","test2":""},{"test":"b","test1":"","test2":"hi"},{"test":"","test1":"3","test2":""}]
需要将所有值为空字符串""的字段替换为null,得到目标结果:
[{"test":"a","test1":"1","test2":null},{"test":"b","test1":null,"test2":"hi"},{"test":null,"test1":"3","test2":null}]
解决方案示例
1. JavaScript实现
遍历数组中的每个对象,逐一检查键值对,将空字符串替换为null:
const originalJson = '[{"test":"a","test1":"1","test2":""},{"test":"b","test1":"","test2":"hi"},{"test":"","test1":"3","test2":""}]'; // 解析JSON为JS对象 const data = JSON.parse(originalJson); // 处理数据 const processedData = data.map(obj => { const newObj = {...obj}; for (const key in newObj) { if (newObj[key] === "") { newObj[key] = null; } } return newObj; }); // 转换回JSON字符串 const resultJson = JSON.stringify(processedData); console.log(resultJson);
2. Python实现
通过嵌套遍历处理每个对象的键值对:
import json original_json = '[{"test":"a","test1":"1","test2":""},{"test":"b","test1":"","test2":"hi"},{"test":"","test1":"3","test2":""}]' data = json.loads(original_json) processed_data = [] for obj in data: new_obj = {} for key, value in obj.items(): new_obj[key] = None if value == "" else value processed_data.append(new_obj) result_json = json.dumps(processed_data) print(result_json)
注意事项
- 处理前必须确保原始JSON语法正确,否则解析阶段会直接报错(比如原示例中缺失的逗号需先补全)。
- 上述代码针对单层对象结构,若JSON存在多层嵌套,可扩展为递归遍历处理。
内容的提问来源于stack exchange,提问作者Sirth
相关产品推荐
相关产品推荐

