在 C# 中,我使用 Json.net 尝试检索“buttonPress”的总和,其中“minutesStreamed”超过 60。
string json = @"
{
'results': [
{
'buttonPress': 8,
'minutesStreamed': 83
},
{
'buttonPress': 3,
'minutesStreamed': 4
},
{
'buttonPress': 7,
'minutesStreamed': 61
}
]
}";
Run Code Online (Sandbox Code Playgroud)
我做了这个(下面)它检索了整个列的总和,但我找不到一种方法来过滤掉minutesStreamed> 60的任何内容。
JObject obj = JObject.Parse(json);
var buttonPresses=
from p in obj["results"]
select (int)p["buttonPress"];
int sum = buttonPresses.Sum();
Run Code Online (Sandbox Code Playgroud)
如果工作正常,所需的输出将为 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();
Run Code Online (Sandbox Code Playgroud)
另外,请注意您JSON的格式不正确,您需要,像这样用逗号分隔对象的属性
{
'buttonPress': 8, <= this
'minutesStreamed': 83
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2333 次 |
| 最近记录: |