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)