Java JSON-简单获取整数而不是长整数

Java JSON-简单获取整数而不是长整数,java,json,casting,integer,long-integer,Java,Json,Casting,Integer,Long Integer,如何从JSON获取整数而不是Long 我想在Java程序中读取JSON,但是当我得到一个JSON值(一个数字)时,我的解析器返回一个类型为Long的数字 我想得到一个整数。我试图将long转换为整数,但java抛出了一个ClassCastException(java.lang.long不能转换为java.lang.integer) 我尝试了几种方法,例如首先将long转换为字符串,然后使用Integer.parseInt()进行转换但这也不起作用 我正在使用 编辑: 我还是不能让它工作。以下是一

如何从JSON获取
整数而不是
Long

我想在Java程序中读取JSON,但是当我得到一个JSON值(一个数字)时,我的解析器返回一个类型为
Long
的数字

我想得到一个
整数
。我试图将long转换为整数,但java抛出了一个
ClassCastException
java.lang.long
不能转换为
java.lang.integer

我尝试了几种方法,例如首先将long转换为字符串,然后使用
Integer.parseInt()进行转换但这也不起作用

我正在使用

编辑:

我还是不能让它工作。以下是一个例子: jsonim.get(“金额”);//返回一个对象

我可以这样做:

(long)jsonItem.get("amount");
但不是这个:

(int)jsonItem.get("amount");
我也无法将其转换为

Integer newInt = new Integer(jsonItem.get("amount"));


请理解
Long
Integer
是对象类,而
Long
int
是基本数据类型。您可以在后者之间自由转换(可能会丢失高阶位),但必须在前者之间进行实际转换

Integer newInt = new Integer(oldLong.intValue());

Long
对象有一个
intValue()
方法。现在看来,您是在故意尝试在正确的解决方案上找出每个可能的不正确的变体。你为什么不按照Hot Clicks或Joop Eggen提供给你的例子来做呢?我成功了。谢谢我被类和数据类型弄糊涂了仔细听:JSON正在返回一个
Long
对象。该对象包含一个
long
值。如果希望该值在
Integer
对象中表示,则必须从
Long
对象中提取该值,并从该值中创建一个新的
Integer
对象。
Integer.valueOf(oldLong.intValue())
将是首选,或等效的,但不太明确的
(int)(Long)oldLong
@MarkoTopolnik——是的,那会更好。根据OP的第一个示例,如果
(long)jsonim.get(“amount”)可以被解析为一个长的,为什么不是一个基本的int?
Integer newInt = new Integer(oldLong.intValue());