Skip to main content
 首页 » 编程设计

.net之有什么方法可以使 DataContractJsonSerializer 正确序列化字典吗

2024年04月30日13cloudgamer

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  
});