我在使用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();
返回“假” 我该怎么办?
答案 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 !