小编Sha*_*pta的帖子

无法使用Json.net使用Complex键序列化Dictionary

我有一个自定义.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的某些限制或我做错了什么?

c# serialization json dictionary json.net

32
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×1

dictionary ×1

json ×1

json.net ×1

serialization ×1