在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。
这甚至可能吗?
答案 0 :(得分:3)
如果您使用的是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();
,则可以使用Linq-to-JSON
这样的
JSON
另外,请注意您的,
格式不正确,您需要用逗号{
'buttonPress': 8, <= this
'minutesStreamed': 83
}
分隔对象的属性
{{1}}