我知道这个问题被问得令人作呕,但现有的答案对我来说并不是特别有帮助。最好的是将JSON 反序列化为 C# 动态对象?,但我不想创建一个对象,我想创建一个字典。
我像这样序列化我的数据,并且我想反序列化为完全相同的数据结构:
public static string AugDictToJSON(Dictionary<string, List<Dictionary<string, object>>> dict)
{
return string.Join(",", dict.Select(
d => string.Format("{{ \"{0}\" : [ {1} ] }}", d.Key,
string.Join(",", d.Value.Select(i => SubAugDictToJSON(i)).ToArray())
)).ToArray());
}
public static string SubAugDictToJSON(Dictionary<string, object> dict)
{
return string.Join(",", dict.Select(
d => string.Format("{{ \"{0}\" : \"{1}\" }}", d.Key, d.Value.ToString())
).ToArray());
}
编辑:解决方案如下(来自接受的答案):
public static Dictionary<string, List<Dictionary<string, object>>> JSONToAugDict(string json)
{
return JsonConvert.DeserializeObject<Dictionary<string, List<Dictionary<string, object>>>>(json);
}