从API中检索艺术家ID - 将它们作为long与int进行处理?

时间:2012-07-27 00:00:01

标签: java json long-integer

在这里开始编程,所以请耐心等待我!

我正在尝试从音乐网站的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?从来没有真正遇到过像这样的问题。

谢谢!

2 个答案:

答案 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的可用性。