为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

月关宝盒 2021-05-11 13:14:51
我有一个像这样的json文件。    {        "student": [            {                "name": "takeru",                "id": 23,            },            {                "name": "george",                "id": 43,            },            {                "name": "hans",                "id": 45,            }        ],        "cost": 100,        "month": 6    }我想做的是将所有学生ID存储在ArrayList中吗?
查看完整描述

2 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

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


假设您的文件是有效的JSON,则可以使用库来解析JSON。我建议格森。使用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;

}


查看完整回答
反对 回复 2021-05-26
?
互换的青春

TA贡献1797条经验 获得超6个赞

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");

}


查看完整回答
反对 回复 2021-05-26
  • 2 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信