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

原文 标签 java json

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

    {
        "student": [
            {
                "name": "takeru",
                "id": 23,
            },
            {
                "name": "george",
                "id": 43,
            },
            {
                "name": "hans",
                "id": 45,
            }
        ],
        "cost": 100,
        "month": 6
    }


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

最佳答案

首先,您的“ JSON文件”不是有效的JSON。您有多余的逗号。

假设您的文件是有效的JSON,则可以使用库来解析JSON。我建议Gson。使用Gson的代码如下所示:

static List<Integer> storeStudentIds(Path file) throws IOException {
  Gson gson = new Gson();
  try (Reader r = Files.newBufferedReader(file)) {
    StudentGroup group = gson.fromJson(r, StudentGroup.class);
    return group.student.stream().map(s -> s.id).collect(Collectors.toList());
  }
}

private static final class StudentGroup {

  private List<Student> student;
  private int cost;
  private int month;
}

private static final class Student {

  String name;
  int id;
}

关于java - 如何将JSONObject解析为整数列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51338516/

相关文章:

java - 放慢水龙头?

java - 当我们可以直接使用DataInput和DataOutput时为什么要使用Writable?

json - 解析JSON返回nil

python - Python:无法从JSON获取数据并转换为列表

javascript - Google Recaptcha - GetResponse 不返回 JSON

java - 用 jackson 反序列化扩展ArrayList的Java对象

jquery - 来自JQUERY的cfc文件的JSON结果错误

java - 为什么当我按类(而不是接口(interface))包装由JDK动态代理包装的查找bean时,为什么没有遇到任何异常?

java - 每分钟Log4j RollingFileAppender

java - Java和数据库查询?