我的代码有问题,我需要在arraylist中提取“materialas”标记。示例数据:
[{
"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);
}
我的目标是阅读数组列表,然后 datos.setArraylist
去我的另一个班。除了读数组列表,其他都可以
pd:我使用从maven下载的java,执行时使用“javac-cp./*:program.java”
4条答案
按热度按时间dnph8jn41#
materias
也是一个数组,因此需要如下内容:这不是类型安全的,因此需要确保数组只包含字符串值。
另外,如果您使用的是Java8,那么可以迭代这些值并手动存储它们(
JsonArray
也是一个Collection<JsonValue>
)j2cgzkjk2#
首先要让你的json有效。
其次,您可以尝试以下方法:
oiopk7p53#
快速创建满足您需求的短期测试实现:
输出
姓名:a114 grupo:daw2导师:15材料0:dwes材料1:dwec材料2:iw材料3:daw材料4:ie
omvjsjqw4#
我相信json中数组的语法与文件中的不同。例如-包含简单元素数组的简单完整json将是:
在文本中,可以指定一个数组,而不需要打开和关闭json“{”和“}”。此外,您还需要命名数组元素(上面示例中的“contacts”)。我认为您想要的是(我使用“arrayname”作为数组元素名):