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

C#反序列化JSON时属性名与内置数据类型重名如何处理

解决方案

方案1:使用C#关键字转义语法(最简便)

C#允许通过在关键字前添加@前缀,将保留字作为合法标识符使用,无需修改任何反序列化逻辑,直接修改实体类定义即可:

public class MyClass
{
   public int A;        
   public int B;       
   public int @short;
}

你在代码中访问该属性时同样使用@short即可,编译后该前缀会被自动忽略,不影响实际运行逻辑。

方案2:使用属性映射特性(更符合命名规范)

如果希望使用符合C#命名规范的属性名,可以使用JavaScriptSerializer原生支持的[ScriptProperty]特性指定JSON字段和实体属性的映射关系:

using System.Web.Script.Serialization;

public class MyClass
{
   public int A;        
   public int B;       
   [ScriptProperty(Name = "short")]
   public int Short { get; set; }
}

以上两种方案都不需要修改你原有的反序列化代码,原有逻辑可以直接复用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:15:03