JSON-simple получает целое число вместо Long

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

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

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

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

я использую json-простой

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"));

1 ответов


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

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