use*_*492 10 java json integer casting long-integer
如何获得Integer而不是Long来自JSON?
我想在我的Java程序中读取JSON,但是当我得到一个JSON值是一个数字时,我的解析器会返回一些类型Long.
我想得到一个Integer.我试图将long转换为整数,但java抛出一个ClassCastException(java.lang.Long不能转换为java.lang.Integer).
我尝试了几件事,比如首先将long转换为字符串,然后转换为Integer.parseInt();但是也不起作用.
我正在使用json-simple
编辑:
我仍然无法使它工作.这是一个例子:jsonItem.get("amount"); //返回一个Object
我可以做这个:
(long)jsonItem.get("amount");
Run Code Online (Sandbox Code Playgroud)
但不是这个:
(int)jsonItem.get("amount");
Run Code Online (Sandbox Code Playgroud)
我也无法转换它
Integer newInt = new Integer(jsonItem.get("amount"));
Run Code Online (Sandbox Code Playgroud)
要么
Integer newInt = new Integer((long)jsonItem.get("amount"));
Run Code Online (Sandbox Code Playgroud)
请理解Long并且Integer是对象类,long而且int是原始数据类型.您可以在后者之间自由转换(可能丢失高位),但您必须在前者之间进行实际转换.
Integer newInt = new Integer(oldLong.intValue());
Run Code Online (Sandbox Code Playgroud)