使用Json.Net反序列化KeyValuePair<string, string>。

7

我需要反序列化这样的字符串:

{
  "example": {
    "id": "12345",
    "name": "blabla"
  }
}

转换成一个类似 KeyValuePair<string, string> 的对象。

我尝试过:

var pair = JsonConvert.DeserializeObject<KeyValuePair<string, string>>(d["example"].ToString()); 

(d["example"] 返回类似于上面展示出来的 json 字符串)

结果是一个空的 KeyValuePair<string, string>

有没有什么方法可以解决这个问题?


2
请参考此处的内容:https://dev59.com/RW435IYBdhLWcg3w7k6b - Anton Baksheiev
1个回答

7
string json = 
     @"{
          ""example"": {
          ""id"": ""12345"",
          ""name"": ""blabla""
          }
        }";

var jobj =  JObject.Parse(json);
var dict = jobj["example"]
            .Children().Cast<JProperty>()
            .ToDictionary(x => x.Name, x => (string)x.Value);

或者

var dict = jobj["example"].ToObject<Dictionary<string, string>>();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接