DataContractJsonSerializer 无法正确序列化字典。
而 JavaScriptSerializer 将字典序列化为 {"abc":"xyz","def":42}
例如, DataContractJsonSerializer 提供 [{"Key":"abc","Value":"xyz"},{"Key":"def","Value":42}]
。
这确实是有问题的,我想知道如何在 WCF 服务中正确序列化 Dictionary 对象。我正在寻找一种需要最少努力的解决方案。
引用:http://msdn.microsoft.com/en-us/library/bb412170.aspx
这是我最终用来在 WCF 中正确序列化字典的解决方法:http://social.msdn.microsoft.com/forums/en-US/wcf/thread/765f1569-0422-4471-8ec2-1d03b2026771
请您参考如下方法:
使用DataContractJsonSerializerSettings (自 .NET 4.5 起可用)可以为您执行此操作:
var serializer = new DataContractJsonSerializer(typeOfObj, new DataContractJsonSerializerSettings()
{
UseSimpleDictionaryFormat = true
});