我知道這個問題已經被問生厭,但現有的答案都沒有特別有幫助我。最好的是Deserialize JSON into C# dynamic object?,但我不想創建一個對象,我想創建一個Dictionary。反序列化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);
}
如果您正在使用V4.5,['JsonValue.Parse()'](http://msdn.microsoft.com/en-us/library/system.json.jsonvalue.parse.aspx)或其兄弟姐妹可能已經足夠接近。 (這裏不是4.5,所以我不能真正測試代碼。) – millimoose
順便說一下,你的序列化代碼是不正確的。 JSON不允許未加引號的字符串作爲鍵。 – millimoose
'我想知道是否有更優雅的方式。使用linq並不會讓你的方式更加優雅。 –