如何在.NET中创建与保留关键字同名的属性
在.NET中使用保留关键字作为类属性名的解决方案
要把JSON中的class字段映射为.NET类的同名属性,直接编写public string class { get; set; }会触发编译错误(class是.NET保留关键字),可通过以下方式实现需求:
核心实现:转义关键字 + 序列化特性映射
在保留关键字前添加@符号做标识符转义,同时搭配序列化特性指定属性对应的JSON字段名,确保序列化/反序列化流程正常:
基于Newtonsoft.Json(Json.NET)的代码示例
using Newtonsoft.Json; public class Imp { public string Name { get; set; } [JsonProperty("class")] public string @class { get; set; } public Address address { get; set; } public decimal highest { get; set; } }
基于System.Text.Json(.NET Core/.NET 5+内置)的代码示例
using System.Text.Json.Serialization; public class Imp { public string Name { get; set; } [JsonPropertyName("class")] public string @class { get; set; } public Address address { get; set; } public decimal highest { get; set; } }
关键说明
@是.NET的标识符转义符,允许将保留关键字用作属性、变量名称- 序列化特性(
JsonProperty/JsonPropertyName)用于告知序列化库:当前.NET属性对应JSON中的class字段,保证JSON数据与类实例之间的正确转换
内容的提问来源于stack exchange,提问作者Raghava Akula
相关产品推荐
相关产品推荐

