我有一个我正在连接的库,我完全无法控制。使用如下属性名称格式化对象:
{"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成员,而不使用硬编码字符串值注释该属性。
答案 0 :(得分:1)
我回答了very similar question here,在那里我讨论了two approaches:使用自定义JsonConverter
,并修改了Json.Net源代码。我认为相同的解决方案适用于您的情况。