如何从JSON获取Integer
而不是Long
?
我想在我的Java程序中读取JSON,但是当我得到一个JSON值是一个数字时,我的解析器返回一些类型Long
。
我想要Integer
。我试图将long转换为整数,但是java抛出ClassCastException
(java.lang.Long
无法转换为java.lang.Integer
)。
我尝试了几件事,例如首先将long转换为字符串,然后使用Integer.parseInt();
进行转换,但这也无效。
我正在使用json-simple
编辑:
我仍然无法让它发挥作用。这是一个例子: jsonItem.get( “量”); //返回一个Object
我可以这样做:
(long)jsonItem.get("amount");
但不是这样:
(int)jsonItem.get("amount");
我也无法用
转换它Integer newInt = new Integer(jsonItem.get("amount"));
或
Integer newInt = new Integer((long)jsonItem.get("amount"));
答案 0 :(得分:7)
请理解Long
和Integer
是对象类,而long
和int
是原始数据类型。你可以在后者之间自由施放(可能丢失高阶位),但你必须在前者之间进行实际转换。
Integer newInt = new Integer(oldLong.intValue());