【问题标题】:java read date from jsonjava从json读取日期
【发布时间】:2018-05-15 13:09:50
【问题描述】:

您好,我正在尝试从 JSON 对象中读取日期。日期以 UTC 毫秒的形式写入 JSON,但是当我尝试读取它时,信息丢失了。 JSON 给出了数字

"time":1526438700000

int value = jsonObj.getInt("time")

返回一个不同的值。将long转换为int会不会有信息丢失?

我正在使用javax.json 实现。 jsonObj 是我从 JsonArray 获得的对象。我认为没有getLong 方法。我尝试转换为long,将值声明为long,结果相同。我认为问题是getInt()

【问题讨论】:

  • 数字 1526438700000 太大,无法容纳 32 位 int。请改用 64 位 long
  • 我认为没有 getLong() 方法。我尝试转换为 long,将值声明为 long 相同的结果。我认为问题出在 getInt() 上?
  • 什么是jsonObj?您使用的是什么 JSON API/库?
  • jsonObj 是我从 JsonArray 获得的对象。我正在使用 javax,json 实现
  • 我使用您的库更新了我的答案

标签: java json date long-integer


【解决方案1】:

您的数字大于可以保存在 int 中的 maximum value (MAX_VALUE = 2147483647)

尽量长一点,因为最大值要大得多(MAX_VALUE = 9223372036854775807L)。

借助javax.json库,可以通过getJsonNumber方法获取long值

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    • 2023-02-12
    • 1970-01-01
    • 2012-06-07
    • 2023-03-30
    相关资源
    最近更新 更多