我正在编写一个winRT应用程序(Windows商店应用程序)
我有一个字典对象 - 其中一个键的值可以是字符串,整数另一个字典对象或提到类型的列表。 (我没有任何自定义类对象作为字典中的值)
我需要将此对象序列化为json字符串...(键与字典的键相同,给定键的值将根据给定的类型而定)
我可以通过枚举字典来自己做,但我想知道是否有任何简单的方法可以做到这一点?
基本上,我正在寻找一种完成这项工作的通用方法。 我看过DataContractJsonSerializer,但看起来我需要将DataContract和其他属性添加到对象中(因为我的值类型有限且简单 - 我不想进入那个麻烦)另外,我想要一种方法将给定的json字符串转换回字典对象(类型相同,没有自定义类对象)
谢谢,
答案 0 :(得分:1)
您可以使用Json.NET(在此库中搜索NuGet)。这个lib是免费的,比.NET嵌入更快。只需为您使用的不同类型的词典创建几个重载方法。像这样:
// Serialization:
private string DictionaryToJson(IDictionary<string, int> dictionary)
{
return JsonConvert.SerializeObject(dictionary, Formatting.Indented);
}
// Disearilization:
private Dictionary<string, int> JsonToDictionary(string json)
{
return JsonConvert.DeserializeObject<Dictionary<string, int>>(json);
}
注意:您可能还想使用SerializeObject / DeserializeObject的异步版本