【问题标题】:How to generate Date fields using Gson如何使用 Gson 生成日期字段
【发布时间】:2017-01-06 18:25:34
【问题描述】:

我正在使用 Gson 在 JSON 中序列化我的 javabean,但我遇到了 Date 类型字段的问题。

如果我在没有任何重新定义的情况下创建 GsonBuilder

Gson gson = new GsonBuilder().create();

它生成格式为“Jan 6, 2017 12:00:00 AM”的 JSON 格式的 Date 字段,但数据类型为 String。

如果我将构建器设置为日期格式

Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();

它以所需格式生成字段,但仍保留为字符串。

使用 String 类型,我无法根据句点进行查询(如this)。手动更改其中一条记录,我能够得到响应:

before:
{"_id" : ObjectId("586fa17851ba381278b059ac"),
"start" : "2017-01-06"),
...
}

after:
{"_id" : ObjectId("586fa17851ba381278b059ac"),
"start" : ISODate("2017-01-06T12:00:00.000Z"),
...
}

如何确保使用 Gson 生成日期字段?

【问题讨论】:

标签: json mongodb gson


【解决方案1】:

不要以为你可以从 Gson 生成 Mongo db 兼容的 json。

BSON 可以帮助您进行转换。 http://mongodb.github.io/mongo-java-driver/3.2/bson/extended-json/

您还可以查看不同的 Mongo Db 对象映射器库,这些库将为您处理这部分以及更多内容。

一些库包括:

Morphia - http://mongodb.github.io/morphia/

Spring Mongo Db - http://projects.spring.io/spring-data-mongodb/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    相关资源
    最近更新 更多