我正在测试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);
来源于这里,但我想知道是否可能将其缩短为一行。 我尝试了
Dictionary<string, string> results = (JObject)parsed["moretests"].ToDictionary(pair => pair.Key, pair => pair.Value)
但是在这种情况下,pair不再是KeyValuePair而是JToken,所以它不能起作用。有人能帮我解决吗?