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

如何在C#中反序列化带连字符属性的JSON文件

如何在C#中反序列化带连字符的JSON属性?

C#的标识符不允许包含连字符,所以没法直接用prop-1作为类的字段/属性名,这时候可以通过特性来建立JSON属性和C#成员的映射关系,具体分两种常用JSON库的情况:

1. 使用System.Text.Json(.NET Core/.NET 5+默认库)

给模型类的成员添加[JsonPropertyName]特性,指定对应的JSON属性名:

using System.Text.Json.Serialization;

class MyJson
{
    [JsonPropertyName("prop-1")]
    public string Prop1;
}

之后正常执行反序列化即可:

MyJson? myJson = JsonSerializer.Deserialize<MyJson>(jsonStr);

2. 使用Newtonsoft.Json(Json.NET)

如果项目用的是Newtonsoft.Json,对应的特性是[JsonProperty]:

using Newtonsoft.Json;

class MyJson
{
    [JsonProperty("prop-1")]
    public string Prop1;
}

反序列化代码:

MyJson? myJson = JsonConvert.DeserializeObject<MyJson>(jsonStr);

这两种方式都能解决带连字符JSON属性的反序列化问题,核心就是通过特性显式指定JSON属性和C#成员的对应关系,绕开C#标识符的命名限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 06:05:07