猿问

如何将JSONObject解析为整数列表?

我有一个像这样的json文件。


    {

        "student": [

            {

                "name": "takeru",

                "id": 23,

            },

            {

                "name": "george",

                "id": 43,

            },

            {

                "name": "hans",

                "id": 45,

            }

        ],

        "cost": 100,

        "month": 6

    }

我想做的是将所有学生ID存储在ArrayList中吗?


月关宝盒
浏览 149回答 2
2回答

LEATH

首先,您的“ JSON文件”不是有效的JSON。您有多余的逗号。假设您的文件是有效的JSON,则可以使用库来解析JSON。我建议格森。使用Gson的代码如下所示:static List<Integer> storeStudentIds(Path file) throws IOException {&nbsp; Gson gson = new Gson();&nbsp; try (Reader r = Files.newBufferedReader(file)) {&nbsp; &nbsp; StudentGroup group = gson.fromJson(r, StudentGroup.class);&nbsp; &nbsp; return group.student.stream().map(s -> s.id).collect(Collectors.toList());&nbsp; }}private static final class StudentGroup {&nbsp; private List<Student> student;&nbsp; private int cost;&nbsp; private int month;}private static final class Student {&nbsp; String name;&nbsp; int id;}

互换的青春

String jsonStr = "{ 'student': [ { 'name': 'takeru', 'id': 23, }, { 'name': 'george', 'id': 43, }, { 'name': 'hans', 'id': 45, } ], 'cost': 100, 'month': 6}";JSONObject jsonObj = new JSONOBject(jsonStr);JSONArray jsonArr = jsonObj.get("student");String name = "";int id = 0;for(JSONObject jo:jsonArr){&nbsp; &nbsp;name = jo.get("name");&nbsp; &nbsp;id = jo.get("id");}
随时随地看视频慕课网APP

相关分类

Java
我要回答