我有一个自定义.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);
Run Code Online (Sandbox Code Playgroud)
这个给我 - >"{\"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);
Run Code Online (Sandbox Code Playgroud)
这个给我 - >"{\"普通\":{\"testA \":\"Hello \",\"testB \":\"World \"}}"
有人建议如果我遇到Json.net的某些限制或我做错了什么?