Привет, я пытаюсь прочитать дату из объекта JSON. Дата записывается в JSON в миллисекундах UTC, но когда я пытаюсь ее прочитать, информация теряется. JSON дает номер
"time":1526438700000
а также
int value = jsonObj.getInt("time")
возвращает другое значение. Может ли быть потеря информации при преобразовании long в int?
Я использую реализацию javax.json. jsonObj - это объект, который я получил от JsonArray. Не думаю, что есть метод getLong. Я попытался выполнить приведение к long, объявив значение как long, результат тот же. Думаю проблема в getInt()?
Я не думаю, что есть метод getLong (). Я попытался выполнить приведение к длинному, объявив значение как длинный тот же результат. Думаю, проблема в getInt ()?
Что такое jsonObj? Какой JSON API / библиотеку вы используете?
jsonObj - это объект, который я получаю из JsonArray. Я использую реализацию javax, json
Я обновил свой ответ решением, использующим вашу библиотеку
@vathan Добро пожаловать в Stack Overflow. Здорово, что вы так отзывчивы и отвечаете на вопросы в комментариях. Еще лучше сделать это, отредактировав свой вопрос (используйте ссылку редактировать) и добавив туда всю информацию, чтобы все было в одном месте (затем вы можете отправить эхо-запрос автору комментария и сообщить, что вы это сделали).




Ваше число больше, чем максимальное значение, которое может содержаться в int (MAX_VALUE = 2147483647)
Постарайтесь получить его как можно дольше, так как максимальное значение намного больше (MAX_VALUE = 9223372036854775807L).
С помощью библиотеки javax.json вы можете получить длинное значение с помощью метода getJsonNumber
jsonObj.getJsonNumber("time").longValue();
Номер
1526438700000слишком велик для 32-битногоint. Вместо этого используйте 64-битныйlong.