我的代码有问题,我需要提取数组列表中的“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/