我有一个以自定义 .net 类型为键的字典,我尝试使用 JSON.net 将此字典序列化为 JSON,但是在序列化期间无法将键转换为正确的值。
class ListBaseClass
{
public String testA;
public String testB;
}
-----
var details = new Dictionary<ListBaseClass, string>();
details.Add(new ListBaseClass { testA = "Hello", testB = "World" }, "Normal");
var results = Newtonsoft.Json.JsonConvert.SerializeObject(details);
var data = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<ListBaseClass, string>> results);
这个给我-->"{\"JSonSerialization.ListBaseClass\":\"Normal\"}"
然而如果我在字典中使用自定义类型作为值,它能够正常工作。
var details = new Dictionary<string, ListBaseClass>();
details.Add("Normal", new ListBaseClass { testA = "Hello", testB = "World" });
var results = Newtonsoft.Json.JsonConvert.SerializeObject(details);
var data = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, ListBaseClass>>(results);
这是我的输出 --> "{\"Normal\":{\"testA\":\"Hello\",\"testB\":\"World\"}}"
有人能否建议我是否遇到了Json.net的某些限制或者我做错了什么?