繁体   English   中英

如何计算 JsonArray 内的对象?

[英]How to count the object inside the JsonArray?

以下 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);

任何帮助将不胜感激! 提前致谢

鉴于您知道数组中每个元素的结构都是相同的,您能否创建一个 Student 类并拥有一个 Student 对象数组?

根据我的经验,操作对象总是比纯 json 更好,但是你没有在你的问题中说这是否是一个要求,所以我假设它是。

因此,您可能会发现这个类似问题的答案很有用: 如何计算 JSON 数组元素的长度

希望这可以帮助!

使用这种结构:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM