我正在使用Json.Net进行序列化。我有一堂课有字典:
public class Test { public string X { get; set; } public Dictionary<string, string> Y { get; set; } }
我可以以某种方式序列化此对象以获取以下JSON
{ "X" : "value", "key1": "value1", "key2": "value2" }
其中“ key1”,“ key2”是词典中的键?
如果您使用的是Json.Net 5.0.5或更高版本,并且愿意将字典的类型从更改Dictionary<string, string>为Dictionary<string, object>,那么一种简单的方法就可以将所需的[JsonExtensionData]属性添加到字典属性中,例如:
Dictionary<string, string>
Dictionary<string, object>
[JsonExtensionData]
public class Test { public string X { get; set; } [JsonExtensionData] public Dictionary<string, object> Y { get; set; } }
然后,已标记字典的键和值将被序列化为父对象的一部分。好处是它也可以反序列化:JSON中与类成员不匹配的任何属性都将放入字典中。