web-dev-qa-db-ja.com

JSON-単純にLongではなく整数を取得します

JSONからIntegerの代わりにLongを取得するにはどうすればよいですか?

JavaプログラムでJSONを読み取りたいのですが、数値であるJSON値を取得すると、パーサーはLong型の数値を返します。

Integerを取得したい。 longを整数にキャストしようとしましたが、JavaはClassCastExceptionをスローします(_Java.lang.Long_は_Java.lang.Integer_にキャストできません)。

最初にlongを文字列に変換し、次にInteger.parseInt();で変換するなど、いくつかのことを試しましたが、それも機能しません。

私は使用しています json-simple

編集:

私はまだそれを動作させることができません。次に例を示します。jsonItem.get( "amount"); //オブジェクトを返します

私がすることができます:

_(long)jsonItem.get("amount");
_

しかし、これではありません:

_(int)jsonItem.get("amount");
_

私もそれを変換することはできません

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

または

_Integer newInt = new Integer((long)jsonItem.get("amount"));
_
11
user2190492

LongIntegerはオブジェクトクラスであり、longintはプリミティブデータ型であることを理解してください。後者の間で自由にキャストできますが(上位ビットが失われる可能性があります)、前者の間で実際の変換を行う必要があります。

Integer newInt = new Integer(oldLong.intValue());
7
Hot Licks