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

C#中如何忽略JSON响应中的空字符串属性?

嘿,这个问题其实很好解决,思路和过滤null属性差不多,只是把判断条件换成空字符串就行!我给你几种常见的实现方式,你可以根据自己的场景选:

忽略JSON对象中的空字符串属性

1. 原生JavaScript手动遍历过滤

如果不想依赖第三方库,手动遍历对象属性是最直接的方案。核心就是逐个检查属性值,遇到空字符串('')就跳过,其他属性保留到新对象中:

const originalObj = { firstName: "xyz", lastName: "efh", id: 123, key: '' };
const filteredObj = {};

// 遍历原对象的所有键值对
for (const [key, value] of Object.entries(originalObj)) {
  // 这里可以按需扩展:比如同时过滤null、undefined和空字符串
  if (value !== null && value !== undefined && value !== '') {
    filteredObj[key] = value;
  }
}

console.log(filteredObj);
// 输出结果: { firstName: "xyz", lastName: "efh", id: 123 }

2. 封装成可复用的工具函数

如果需要多次用到这个逻辑,把它封装成函数会更方便,还能灵活调整过滤规则:

function filterEmptyStrings(obj) {
  return Object.fromEntries(
    // 过滤掉值为空字符串的键值对
    Object.entries(obj).filter(([_, value]) => value !== '')
    // 如果要同时过滤null和undefined,改成: value != null && value !== ''
  );
}

// 测试一下
const testObj = { firstName: "xyz", lastName: "efh", id: 123, key: '', age: null };
const result = filterEmptyStrings(testObj);
console.log(result);
// 输出: { firstName: "xyz", lastName: "efh", id: 123 }

3. 用Lodash简化(如果项目已引入)

如果你的项目已经在用Lodash,用_.omitBy方法可以一行搞定,非常简洁:

const _ = require('lodash');
const originalObj = { firstName: "xyz", lastName: "efh", id: 123, key: '' };
const filteredObj = _.omitBy(originalObj, value => value === '');

console.log(filteredObj);
// 输出符合预期的结果

处理嵌套结构的情况

如果你的JSON是多层嵌套的对象或数组,就需要递归处理每个层级:

function deepFilterEmptyStrings(obj) {
  // 非对象类型直接返回
  if (typeof obj !== 'object' || obj === null) {
    return obj;
  }
  // 数组的话,递归处理每个元素
  if (Array.isArray(obj)) {
    return obj.map(item => deepFilterEmptyStrings(item));
  }
  // 对象的话,过滤空字符串属性并递归处理属性值
  return Object.fromEntries(
    Object.entries(obj)
      .filter(([_, value]) => value !== '')
      .map(([key, value]) => [key, deepFilterEmptyStrings(value)])
  );
}

这样不管你的JSON结构多复杂,里面的空字符串属性都会被过滤掉啦~

内容的提问来源于stack exchange,提问作者Vicky

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:13:35