我有一个像这样的json文件。
{
"student": [
{
"name": "takeru",
"id": 23,
},
{
"name": "george",
"id": 43,
},
{
"name": "hans",
"id": 45,
}
],
"cost": 100,
"month": 6
}
我想做的是将所有学生ID存储在ArrayList中?
答案 0 :(得分:1)
首先,您的“ 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;
}
答案 1 :(得分:0)
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){
name = jo.get("name");
id = jo.get("id");
}