[英]Querying Json with filters using Json.Net
在C#中我使用Json.net来尝试检索'buttonPress'的总和,其中'minutesStreamed'超过60。
string json = @"
{
'results': [
{
'buttonPress': 8,
'minutesStreamed': 83
},
{
'buttonPress': 3,
'minutesStreamed': 4
},
{
'buttonPress': 7,
'minutesStreamed': 61
}
]
}";
我这样做(下面)检索整列的总和,但我找不到一种方法来过滤掉minutesStreamed> 60的任何东西。
JObject obj = JObject.Parse(json);
var buttonPresses=
from p in obj["results"]
select (int)p["buttonPress"];
int sum = buttonPresses.Sum();
如果正常工作,所需的输出将为15。
这甚至可能吗?
如果你使用的是Json.NET
,你可以像这样使用Linq-to-JSON
var jsonString = File.ReadAllText(@"C:\YourDirectory\results.json");
var jObj = JObject.Parse(jsonString);
var sum = jObj["results"]
.Where(r => (int)r["minutesStreamed"] > 60)
.Select(r => (int)r["buttonPress"])
.Sum();
另外,请注意您的JSON
格式不正确,您需要用逗号分隔对象的属性,
就像这样
{
'buttonPress': 8, <= this
'minutesStreamed': 83
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.