【问题标题】:How do i deserialize LocalDateTime using Gson in android?如何在 android 中使用 Gson 反序列化 LocalDateTime?
【发布时间】:2021-05-20 21:52:55
【问题描述】:

现在 gson 将我的 Spring Boot 服务器中的 LocalDateTime 反序列化为

"localDateTime": {
    "date": {
        "day": //someday,
        "month": //somemonth
        "year": //someyear
    },
    "time": {
        "hours": //somehour,
        "minutes": //someminute,
        "seconds": //someseconds
    }
}

但是当我使用完全相同的 api 在 android 中反序列化它时,会出现此异常:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.scmuapp, PID: 13821
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.time.LocalDate.toString()' on a null object reference

这意味着 LocalDateTime 对象本身不是 null,但基础值是。现在我知道一个事实,即我的请求填充了 5 个对象,所有对象都具有日期和时间,并且值相等,因为它是脚本创建的,因此它们没有理由为空,但两者都是。我收到一个已定义的 Page 通用对象:

    private int pageSize, page, elements, totalPages, total;
    private List<T> content;

列表内容带来了数据,在这种情况下有一堆“基本值”,也就是字符串和整数,但是 LocalDateTime 只是没有正确解析。有什么想法吗?

【问题讨论】:

  • 这很明显。为什么是我问的问题。 json中的值在那里
  • 介意分享创建脚本吗?

标签: java android java-time


【解决方案1】:

我找到了原因。可能和安卓版本有关。我没有按说修复它,但基本上在我的项目中本地创建了一个 localdatetime 版本并且效果很好

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多