java - 使用 GSON 反序列化 json 作为时间戳

标签 java gson

我有一个 json 字符串,例如

{"start_time": "10:00 AM", "end_time" : "11:00 PM"}

如果我使用 GSON 进行 POJO 反序列化,那么正如您所看到的,这些将被映射到我的类中的 String 变量。最终,我想使用用户提供的时间来看看它是否在范围内。 我能想到的唯一方法是,每次我得到一个时间,然后我将这些字符串变量转换为对象(无论是Joda时间,Date,LocalTime ..等),然后进行比较。

还有更好的办法吗?我可以让 GSON 将字符串直接反序列化为时间对象吗?或者以某种方式节省在比较过程中始终进行这些转换的步骤?或者我提出的方式确实是正确的设计?

谢谢

最佳答案

您可以使用GsonBuilder将时间解析为日期,指定日期格式:

    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.setDateFormat("HH:mm a");
    Gson gson = gsonBuilder.create();
    Pojo fromJson = gson.fromJson(<string>, Pojo.class);

POJO 字段将如下所示(如果需要,请重命名):

    private Date start_time;
    private Date end_time;

关于java - 使用 GSON 反序列化 json 作为时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52584202/

相关文章:

Java - UDP 和组播检测

java - 在 Hibernate 中将 HQL 与 native SQL 混合时数据库的状态

java - 在 Java 中定位外部文件

java - 找不到类型的匹配 bean ... 依赖项

android - 使用 GSON 从 URL 解析 JSON

java - Gson TypeAdapter 和 serializeNulls

java - 使用 Gson.fromJson() 方法将 json 解析为类 < T > 模型不起作用

java - 如何使 Netbeans 表单自动填充类中的字段?

java - 我怎样才能让 gson 排除我的对象的父类(super class)?

java - 如何在Android中使用GSON获取具有特定值的JSON对象