在Json格式下面是我的输入,我需要根据Object计数总数
Students:[
{
"Student_id": "101"
"Name": "Jon",
"Course" : "Engineer"
},
{
"Student_id": "102"
"Name": "Snow",
"Course" : "Medical"
},
{
"Student_id": "103"
"Name": "Walter",
"Course" : "Chemistry"
},
{
"Student_id": "104"
"Name": "White",
"Course" : "Chemistry"
}
]
当我循环JsonArray时,无法计算总数吗?它将始终显示为1,我希望输出如下格式
No Of Students: 4
Total Chemistry Students :2
下面我尝试过的代码,
JsonArray Students=Details.getAsJsonArray("Students");
for(int i=0;i<Students.size();i++)
{
JsonObject Std=Students.get(i).getAsJsonObject();
String SrdID=Std.get("Student_id").getAsString();
System.out.println("Student Details----"+SrdID);
}
String [] Studentarr=new String[] {"Student_id"};
int Count=Studentarr.length;
System.out.println("Count ---"+ Count);
任何帮助将不胜感激!!在此先感谢
答案 0 :(得分:0)
鉴于您知道数组中每个元素的结构都相同,是否可以创建一个Student类并拥有一个Student对象数组?
根据我的经验,总是比纯json更好地操作对象,但是您并没有在问题中说这是否是必需条件,所以我假设是。
因此,您可能会发现类似问题的答案很有用: how to count length of the JSON array element
希望这会有所帮助!
答案 1 :(得分:0)
具有以下结构:
var object = {"Students":[
{
"Student_id": "101",
"Name": "Jon",
"Course" : "Engineer"
},
{
"Student_id": "102",
"Name": "Snow",
"Course" : "Medical"
},
{
"Student_id": "103",
"Name": "Walter",
"Course" : "Chemistry"
},
{
"Student_id": "104",
"Name": "White",
"Course" : "Chemistry"
}]};
现在,我们可以尝试使用JS:
print(object.Students.length) // print total
print(object.Students.filter(st => st.Course === 'Chemistry').length) // print occurrences
输出为:
> 4
> 2