我有一些这样的JSON(从字典序列化):
{
"Context":
{
"Test": "Test"
}
}
并希望将JSON.NET的JSON用于LINQ,以将其反序列化为字典。
我尝试了不同的东西:
var obj = JObject.Parse(json);
obj.Value<Dictionary<string, string>>("Context");
但这引发了这样的异常:
System.InvalidCastException
无法将Newtonsoft.Json.Linq.JObject强制转换为Newtonsoft.Json.Linq.JToken
我也尝试过:
var obj = JObject.Parse(json);
var context = obj.Values("Context");
但后来我无法弄清楚如何将元素处理成字典。
答案 0 :(得分:15)
这应该适合你:
string json = "{\"Context\":{\"Test\": \"Test\"}}";
var obj = JObject.Parse(json);
var dict = obj["Context"].ToObject<Dictionary<string,string>>();