9

我有一些这样的 JSON(从字典中序列化):

{
  "Context":
  {
    "Test": "Test"
  }
}

并想使用 JSON.NET 的 JSON to 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");

但是后来我不知道如何将元素处理成字典。

4

1 回答 1

14

这应该适合你:

string json = "{\"Context\":{\"Test\": \"Test\"}}";
var obj = JObject.Parse(json);
var dict = obj["Context"].ToObject<Dictionary<string,string>>();
于 2013-03-04T01:38:21.617 回答