在使用 C# 进行开发时,我们经常需要将对象转换为 JSON 格式(即 JSON 序列化),或者从 JSON 字符串还原为对象(反序列化)。然而,有时候类中的属性名与 JSON 中的字段名不一致,比如后端 API 要求字段名为 user_name,而我们的 C# 类属性却叫 UserName。这时,就需要对 JSON 序列化的属性进行重命名。
本文将手把手教你如何在 C# 中实现 JSON 序列化属性重命名,涵盖两种主流库:Newtonsoft.Json 和 System.Text.Json(.NET Core 3.0+ 内置)。无论你是刚入门的新手,还是有一定经验的开发者,都能轻松掌握!
Newtonsoft.Json(也叫 Json.NET)是 .NET 平台上最流行的 JSON 处理库之一。它通过 [JsonProperty] 特性来指定序列化时使用的字段名。
using Newtonsoft.Json;public class User{ [JsonProperty("user_id")] public int UserId { get; set; } [JsonProperty("user_name")] public string UserName { get; set; } [JsonProperty("email_address")] public string Email { get; set; }}// 序列化示例var user = new User{ UserId = 1001, UserName = "张三", Email = "zhangsan@example.com"};string json = JsonConvert.SerializeObject(user);Console.WriteLine(json);// 输出:{"user_id":1001,"user_name":"张三","email_address":"zhangsan@example.com"} 如上所示,即使 C# 属性名为 UserId,序列化后也会变成 user_id。这就是 C# JSON序列化 中最常用的属性重命名方式。
从 .NET Core 3.0 开始,微软推出了内置的 System.Text.Json 库,性能更优且无需额外安装 NuGet 包。它使用 [JsonPropertyName] 特性来重命名属性。
using System.Text.Json;using System.Text.Json.Serialization;public class User{ [JsonPropertyName("user_id")] public int UserId { get; set; } [JsonPropertyName("user_name")] public string UserName { get; set; } [JsonPropertyName("email_address")] public string Email { get; set; }}// 序列化示例var user = new User{ UserId = 1001, UserName = "张三", Email = "zhangsan@example.com"};string json = JsonSerializer.Serialize(user);Console.WriteLine(json);// 输出:{"user_id":1001,"user_name":"张三","email_address":"zhangsan@example.com"} 注意:两个库的特性名称不同,Newtonsoft.Json 用的是 JsonProperty,而 System.Text.Json 用的是 JsonPropertyName。别混淆哦!
Q:能否同时支持两个库?
可以!但需分别添加两个特性:
[JsonProperty("user_name")][JsonPropertyName("user_name")]public string UserName { get; set; } 虽然略显冗余,但在迁移项目时非常实用。
通过本文,你已经掌握了在 C# 中进行 JSON序列化属性重命名 的两种主流方法。无论是使用 Newtonsoft.Json 还是 System.Text.Json,只需一个简单的特性标注,就能轻松控制 JSON 字段名。这对于对接第三方 API、统一前后端命名规范等场景非常有用。
记住这四个关键词:C# JSON序列化、属性重命名、Newtonsoft.Json、System.Text.Json,它们是你解决此类问题的核心工具!
祝你编码愉快,轻松搞定 JSON!
本文由主机测评网于2025-12-04发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025122729.html