Дата чтения Java из json

Привет, я пытаюсь прочитать дату из объекта JSON. Дата записывается в JSON в миллисекундах UTC, но когда я пытаюсь ее прочитать, информация теряется. JSON дает номер

"time":1526438700000

а также

int value = jsonObj.getInt("time")

возвращает другое значение. Может ли быть потеря информации при преобразовании long в int?

Я использую реализацию javax.json. jsonObj - это объект, который я получил от JsonArray. Не думаю, что есть метод getLong. Я попытался выполнить приведение к long, объявив значение как long, результат тот же. Думаю проблема в getInt()?

Номер 1526438700000 слишком велик для 32-битного int. Вместо этого используйте 64-битный long.

Jesper 15.05.2018 15:12

Я не думаю, что есть метод getLong (). Я попытался выполнить приведение к длинному, объявив значение как длинный тот же результат. Думаю, проблема в getInt ()?

vathan 15.05.2018 15:19

Что такое jsonObj? Какой JSON API / библиотеку вы используете?

Jesper 15.05.2018 15:21

jsonObj - это объект, который я получаю из JsonArray. Я использую реализацию javax, json

vathan 15.05.2018 15:27

Я обновил свой ответ решением, использующим вашу библиотеку

jhamon 15.05.2018 15:43

@vathan Добро пожаловать в Stack Overflow. Здорово, что вы так отзывчивы и отвечаете на вопросы в комментариях. Еще лучше сделать это, отредактировав свой вопрос (используйте ссылку редактировать) и добавив туда всю информацию, чтобы все было в одном месте (затем вы можете отправить эхо-запрос автору комментария и сообщить, что вы это сделали).

Ole V.V. 15.05.2018 19:18
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
6
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваше число больше, чем максимальное значение, которое может содержаться в int (MAX_VALUE = 2147483647)

Постарайтесь получить его как можно дольше, так как максимальное значение намного больше (MAX_VALUE = 9223372036854775807L).

С помощью библиотеки javax.json вы можете получить длинное значение с помощью метода getJsonNumber

jsonObj.getJsonNumber("time").longValue();

Другие вопросы по теме