使用.NET 4.5版本的 DataContractJsonSerializer 并在 DataContractJsonSerializerSettings.UseSimpleDictionaryFormat 的帮助下,我可以序列化词典。例如,这本字典:
var dic = new Dictionary<string, object>
{
{ "Level", 3 },
{ "Location", "Catacomb" }
};
将转换为漂亮的JSON:
{
"Level":3,
"Location":"Catacomb"
}
但如果我有另一本字典作为值:
var dic = new Dictionary<string, object>
{
{ "Level", 3 },
{ "Location", new Dictionary<string, object>
{
{ "Name", "Catacobms" }
}
}
};
结果JSON看起来非常糟糕:
{
"Level":3,
"Location":[
{
"__type":"KeyValuePairOfstringanyType:#System.Collections.Generic",
"key":"Name",
"value":"Catacobms"
}
]
}
有没有办法解决这个问题?
PS:我知道还有其他好的JSON序列化程序,但在这种情况下我需要使用 DataContractJsonSerializer 。