我想计算API返回的Json数组中出现的次数 我的数据是
data = [
{"id":"1939317721","pauseReason":"DISPLAY","DeptName":"Account"},
{"id":"1939317722","pauseReason":"DISPLAY","DeptName":"Admission"},
{"id":"1939317723","pauseReason":"DISPLAY","DeptName":"Account"},
{"id":"1939317724","pauseReason":"DISPLAY","DeptName":"Account"},
]
因此我想要
res = {"account":3,"admission":1}
那么如何在键值对中得到DeptName
的出现次数?
答案 0 :(得分:4)
假设你有一个类:
class Foo {
public string Id {get;set;}
public string PauseReason {get;set;}
public string DeptName {get;set;}
}
然后使用类似Json.NET的东西:
var foos = JsonConvert.DeserializeObject<Foo[]>(json);
然后是LINQ:
var grouped = foos.GroupBy(x => x.DeptName);
foreach(var grp in grouped)
{
Console.WriteLine($"{grp.Key}: {grp.Count()}");
}
如果您尝试将其格式化为JSON,那么:
var map = grouped.ToDictionary(grp => grp.Key, grp => grp.Count());
var jsonResult = JsonConvert.SerializeObject(map);