加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Json.Net在序列化期间重命名属性

发布时间:2020-12-16 18:41:41 所属栏目:百科 来源:网络整理
导读:参见英文答案 Alternate property name while deserializing????????????????????????????????????2个 我有一个我正在连接的库,我完全无法控制.使用如下属性名称格式化对象: {"my property": "my value"} 和 {"my-property": "my value"} 使用json.net我可
参见英文答案 > Alternate property name while deserializing????????????????????????????????????2个
我有一个我正在连接的库,我完全无法控制.使用如下属性名称格式化对象:

{"my property": "my value"}

{"my-property": "my value"}

使用json.net我可以在类中的属性中添加一个属性来表示每个消息,以将这些属性名称映射到我的类中的属性:

public class MyClass
{
  [JsonProperty(PropertyName="my-prop")]
  public String MyProperty {get; set;}
}

这很好,但问题是我必须在大量的类上使用这些“魔术字符串”而且我真的很鄙视魔术字符串.

底线:

有没有办法将所有这些属性更改为C#可读字符串,以便让json.net自动映射这些属性?

即:

{"my property": "my value"}

应改为:

{"MyProperty": "my value"}

在反序列化期间,然后将该值传递给MyClass中的MyProperty成员,而不使用硬编码字符串值注释该属性.

解决方法

我回答了 very similar question here,在那里我讨论了 two approaches:使用自定义JsonConverter,并修改了Json.Net源代码.我认为同样的解决方案适用于您的情况.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读