C#Serialize Dictionary 为JSON
我试图将Dictionary序列化为JSON,并获得以下exception:
new JavaScriptSerializer().Serialize(mydict)`
输入’System.Collections.Generic.Dictionary`2 [[System.UInt64,mscorlib,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089],[System.Nullable`1 [[System.UInt64,mscorlib,Version =字典的序列化/反序列化不支持2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]],mscorlib,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]’,键必须是字符串或对象。
是否有捷径可寻? 也许通过LINQ或者相对简洁的东西将ulongs转换为字符串?
var dict = mapping.ToDictionary(item => item.Key.ToString(), item => item.Value.ToString());`
将任何Dictionary
转换为Dictionary
然后序列化工作。
使用NewtonSoft.Json
而不是JavaScriptSerializer
来克服这个问题:
例如:
JsonConvert.SerializeObject(mydict);
博客http://dukelupus.wordpress.com/2011/05/04/asp-net-mvc-json-and-a-generic-dictionary/描述了一种扩展方法Dictionary ToJsonDictionary(this Dictionary input)