【发布时间】:2016-07-22 00:58:58
【问题描述】:
我正在测试 Json.Net 以准备另一个项目,但遇到了一些麻烦。我想要做的是将moretests 的内容转换为字典。这是我的完整代码:
class Program
{
static void Main(string[] args)
{
string json = @"{
'test': 'a',
'test2': 'b',
'moretests':{
'test3': 'c',
'test4': 'd'
}
}";
JObject parsed = JObject.Parse(json);
IDictionary<string, JToken> results = (JObject)parsed["moretests"];
Dictionary<string, string> results2 = results.ToDictionary(pair => pair.Key, pair => (string)pair.Value);
foreach (var i in results.Keys)
{
Console.WriteLine($"{i}: {results[i]}");
}
}
}
我得到了这两行:
IDictionary<string, JToken> results = (JObject)parsed["moretests"];
Dictionary<string, string> results2 = results.ToDictionary(pair => pair.Key, pair => (string)pair.Value);
来自here,但我想知道是否可以将其缩短为一行。我试过做
Dictionary<string, string> results = (JObject)parsed["moretests"].ToDictionary(pair => pair.Key, pair => pair.Value)
但它不起作用,因为在这种情况下,pair 不再是 KeyValuePair,而是 JToken。谁能帮帮我?
【问题讨论】: