• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
PowerCoder
博客园    首页    新随笔    联系   管理    订阅  订阅

使用Json.NET序列化对象时,忽略为null的属性

通过枚举NullValueHandling.Ignore,在使用Json.NET序列化对象为Json字符串时,可以忽略为null的属性,如下代码所示:

using Newtonsoft.Json;

namespace Net8JsonNullValueDemo
{
    class People
    {
        public required string Name
        {
            get;
            set;
        }

        public int? Age
        {
            get;
            set;
        }

        public string? Description
        {
            get;
            set;
        }

        public decimal? Salary
        {
            get;
            set;
        }
    }

    internal class Program
    {
        static void Main(string[] args)
        {
            //构造一个People对象,Description和Salary属性为null
            People people = new People()
            {
                Name = "王大锤, Jack Wang",
                Age = 16
            };

            //默认情况下,Json.NET会将为null的属性也序列化到Json字符串中
            string jsonWithNullValues = JsonConvert.SerializeObject(people, Formatting.Indented);
            Console.WriteLine(jsonWithNullValues);

            Console.WriteLine();
            Console.WriteLine();

            //通过声明NullValueHandling.Ignore枚举,Json.NET会忽略掉为null的属性,序列化后的Json字符串中只有非null的属性
            jsonWithNullValues = JsonConvert.SerializeObject(people, Formatting.Indented, new JsonSerializerSettings()
            {
                NullValueHandling = NullValueHandling.Ignore
            });
            Console.WriteLine(jsonWithNullValues);

            Console.WriteLine();
            Console.WriteLine();

            Console.WriteLine("Press any key to end...");
            Console.ReadLine();
        }
    }
}

运行上面的代码,结果如下所示:

{
  "Name": "王大锤, Jack Wang",
  "Age": 16,
  "Description": null,
  "Salary": null
}


{
  "Name": "王大锤, Jack Wang",
  "Age": 16
}


Press any key to end...

 

可以参考下面这篇Json.NET的官方文档:

NullValueHandling setting

 

posted @ 2025-01-23 20:28  PowerCoder  阅读(127)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3