Ответ 1
var dict = mapping.ToDictionary(item => item.Key.ToString(), item => item.Value.ToString());`
который преобразует любые Dictionary<K,V>
в Dictionary<string,string>
, и затем сериализация.
Я пытаюсь сериализовать словарь в JSON и получить следующее исключение:
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]] 'не поддерживается для сериализации/десериализации словаря, ключи должны быть строками или объектов.
Есть ли простой способ сделать это? Может быть, преобразование ulongs в строки через LINQ или что-то относительно краткое?
var dict = mapping.ToDictionary(item => item.Key.ToString(), item => item.Value.ToString());`
который преобразует любые Dictionary<K,V>
в Dictionary<string,string>
, и затем сериализация.
используйте NewtonSoft.Json
вместо JavaScriptSerializer
для решения этой проблемы:
Пример:
JsonConvert.SerializeObject(mydict);
В блоге http://dukelupus.wordpress.com/2011/05/04/asp-net-mvc-json-and-a-generic-dictionary/ описывается метод расширения Словарь ToJsonDictionary (этот ввод словаря)