在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:YourDirectoryresults.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
}