【问题标题】:Deserialize JSON to dictionary using LINQ to JSON使用 LINQ to JSON 将 JSON 反序列化为字典
【发布时间】:2013-02-17 23:46:00
【问题描述】:

我有一些这样的 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");

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

【问题讨论】:

    标签: c# linq json.net


    【解决方案1】:

    这应该适合你:

    string json = "{\"Context\":{\"Test\": \"Test\"}}";
    var obj = JObject.Parse(json);
    var dict = obj["Context"].ToObject<Dictionary<string,string>>();
    

    【讨论】:

    • 你应该在 JToken 上使用 ToObject 方法。
    • 你说得对,我已经编辑了答案以反映这一点。
    猜你喜欢
    • 2019-10-05
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    相关资源
    最近更新 更多