如何将 JSON 解析为 int?

新手上路,请多包涵

我已经解析了一些 JSON 数据,只要我将它存储在 String 变量中,它就可以正常工作。

我的问题是我需要一个 int 变量而不是 String 形式的 ID。我试着做了一个演员 int id = (int) jsonObj.get("");

但它给出了一条错误消息,指出我无法将对象转换为 int。所以我尝试使用以下方法进行转换:

 String id = (String) jsonObj.get("id");
int value = Integer.parseInt(id);

但这也行不通。怎么了。 JSON 如何与 int 一起工作?我的字符串工作得很好,只有当我尝试将它们作为 int 时,我才会遇到问题。

这是我的代码:

 public void parseJsonData() throws ParseException {

        JSONParser parser = new JSONParser();
        Object obj = parser.parse(jsonData);
        JSONObject topObject = (JSONObject) obj;
        JSONObject locationList = (JSONObject) topObject.get("LocationList");
        JSONArray array = (JSONArray) locationList.get("StopLocation");
        Iterator<JSONObject> iterator = array.iterator();

        while (iterator.hasNext()) {

            JSONObject jsonObj = (JSONObject) iterator.next();
            String name  =(String) jsonObj.get("name");
            String id = (String) jsonObj.get("id");
            Planner.getPlanner().setLocationName(name);
            Planner.getPlanner().setArrayID(id);

        }

    }

原文由 Josef 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
1 个回答

您可以使用 parseInt

 int id = Integer.parseInt(jsonObj.get("id"));

或者更好更直接的 getInt 方法:

 int id = jsonObj.getInt("id");

原文由 Denys Séguret 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏