0

初学者在这里,所以请多多包涵!

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

谢谢!

4

2 回答 2

1
int currID = (Integer) jsonItem.get("id");

大概应该读

long currID = (Long) jsonItem.get("id");
于 2012-07-27T00:07:11.917 回答
1

根据您的错误,我假设 jsonItem.get("id") 的返回值是 java.lang.Long

两种方式

1)首选:将id存储在您身边。

long currId = jsonItem.get("id");

2)我不建议跟随,你最终可能会得到不适合'int'的ID

int currId = jsonItem.get("id").intValue(); // DO NOT do this.. 

我刚刚提到了第二个选项,让您知道 API 的可用性。

于 2012-07-27T00:07:55.623 回答