在这里开始编程,所以请耐心等待我!
我正在尝试从音乐网站的API中检索一些艺术家ID。这是我的代码片段:
JSONObject jsonItem = (JSONObject) jsonResults.get(i);
System.out.println(jsonItem.get("id")); // Prints 22989
int currID = (Integer) jsonItem.get("id");
我正在尝试将多个ID添加到int数组中,因此我可以稍后处理它们(因此get(i))。
但是,当我运行上面的代码时出现以下错误:
java.lang.Long无法强制转换为java.lang.Integer
处理这样的事情的最佳方法是什么?我应该尝试将所有内容都转换为int吗?也许处理不同类型的ID,比如long?从来没有真正遇到过像这样的问题。
谢谢!
答案 0 :(得分:1)
int currID = (Integer) jsonItem.get("id");
可能应该阅读
long currID = (Long) jsonItem.get("id");
答案 1 :(得分:1)
从你的错误中,我假设jsonItem.get(“id”)的返回值是java.lang.Long
两种方式
1)首选:将身份证存放在身边。
long currId = jsonItem.get("id");
2)我不推荐以下,你最终可能会得到那些不适合'int'的ids
int currId = jsonItem.get("id").intValue(); // DO NOT do this..
我刚刚提到了第二个选项,让您了解API的可用性。