java - 使用java获取Arraylist文件json

标签 java arrays json

我的代码有问题,我需要提取数组列表中的“materias”标记。示例数据:

[{
    "name": "A114",
    "grupo": "DAW2",
    "tutor": 15,
    "materias": ["DWES", "DWEC", "IW", "DAW", "IE"]
}]

我尝试了这个,可以工作,但我需要数组列表的内容:

try { // this read the JSON file
    line = new String(Files.readAllBytes(Paths.get("fileAulas")));
} catch (Exception ex) {
    ex.printStackTrace();
}
JSONArray recs = new JSONArray(line);
for (Object rec : recs) {

    Aula datos = new Aula();

    JSONObject obj = ((JSONObject) rec);
    String name = obj.getString("name");    
    //datos.setNombre(name);

    String grupo = obj.getString("grupo");
    //datos.setGrupo(grupo);

    int tutor = obj.getInt("tutor");
    //datos.setTutor(tutor);
}

我的目标是读取 arraylist,然后将 datos.setArraylist 读取到我的另一个类。除了读取数组列表之外,一切正常

PD:我使用从 Maven 下载的 java,执行时使用“javac -cp ./*: program.java”

最佳答案

materias也是一个数组,所以你需要类似的东西:

JSONArray materias = obj.getJsonArray("materias");
List<String> materiasList = materias.getValuesAs(String.class);

这不是类型安全的,因此您需要确保数组仅包含字符串值。

此外,如果您使用的是 Java 8,则可以迭代这些值并手动存储它们( JsonArray 也是 Collection<JsonValue> )

关于java - 使用java获取Arraylist文件json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54517189/

相关文章:

java - 是否可以使用 Logback 为每个日志事件添加序列号?

C++ 数组显示字母和数字?

c# - 读取 .NET 6 API 中的 appsettings.{env}.json 对象 - 值为 NULL

json - 循环通过 API 响应来获取多个页面

java - Maven 与 npm 类似吗?

java - 字符串到 key 转换/反之亦然

java - notificationDataSetChange 在自定义适配器上无法正常工作

java - 在 Spring 4 中导入 Groovy Bean 定义?

arrays - Typescript 参数 - 通用对象数组和对象键数组(部分)

c++ - 索引 wchar_t 数组中的字符