从Json中选择一个成员

时间:2018-01-31 12:55:55

标签: c# json

我在使用C#(VS 2017,.Net 4.5)代码时遇到了一些麻烦。如果有人可以提供帮助,那就太棒了。 我有一个Json文件:

{
"John":{"Math":[["0.2",40]],"Chem":[["0.4",37]]},
"Jane":{"Math":[["0.3",80]],"Chem":[["0.2",40]]},
"Do":{"Math":[["0.1",55]],"Chem":[["0.1",10]]}
}

我想找回" 0.3"和简的80个值。我使用了这些行:

var source = System.IO.File.ReadAllText(@"C:\Data.json");
dynamic obj = JObject.Parse(source); // newtonsoft.com
var list = obj.Properties().Select(x => x.Name == "Jane").First();

给出错误:如果没有先将lambda表达式转换为委托或表达式树类型,则不能将lambda表达式用作动态调度操作的参数。

我改为最后两行:

IEnumerable<dynamic> obj = JObject.Parse(source); // newtonsoft.com
var list = obj.Select(x => (x.Name == "Jane")).First();

返回“假” 我该怎么办?

1 个答案:

答案 0 :(得分:1)

var json = "{'John': {'Math': [['0.2', 40]],'Chem': [['0.4', 37]]},'Jane': {'Math': [['0.3', 80]],'Chem': [['0.2', 40]]},'Do': {'Math': [['0.1', 55]],'Chem': [['0.1', 10]]}}";


dynamic obj = JObject.Parse(json); // newtonsoft.com                   


var myVal = obj["Jane"]["Math"]; //Simply you can access it by obj name !