如何计算JsonArray中的对象?

时间:2019-03-14 16:53:23

标签: java json java-8 gson

在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);

任何帮助将不胜感激!!在此先感谢

2 个答案:

答案 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
相关问题