【发布时间】:2014-08-21 15:47:37
【问题描述】:
我有一个自定义 .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\"}"
但是,如果我将自定义类型作为 Dictionary 中的值,则效果很好
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 的一些限制或者我做错了什么,有人可以建议吗?
【问题讨论】:
标签: c# json serialization dictionary json.net