JSON - просто получить Integer вместо Long - программирование
Подтвердить что ты не робот

JSON - просто получить Integer вместо Long

Как получить Integer вместо Long из JSON?

Я хочу читать JSON в своей программе Java, но когда я получаю значение JSON, которое является числом, мой парсер возвращает несколько типов Long.

Я хочу получить Integer. Я попытался использовать long для целого числа, но java выбрасывает ClassCastException (java.lang.Long не может быть добавлено к java.lang.Integer).

Я пробовал несколько вещей, например, сначала преобразовывал long в строку, а затем преобразовывал с помощью Integer.parseInt();, но также и не работал.

Я использую json-simple

Edit:

Я все еще не могу заставить его работать. Вот пример: jsonItem.get( "количество" );//возвращает объект

Я могу это сделать:

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

Но не это:

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

Я также не могу преобразовать его с помощью

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

или

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

Ответ 1

Пожалуйста, поймите, что Long и Integer - это классы объектов, а Long и int - примитивные типы данных. Вы можете свободно использовать между последними (с возможной потерей битов высокого порядка), но вы должны сделать фактическое преобразование между предыдущими.

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