You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 03:50:26