如何使用Gson生成日期字段

时间:2017-01-06 18:25:34

标签: json mongodb gson

我正在使用Gson在JSON中序列化我的javabean,而且我遇到日期类型字段的问题。

如果我创建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。

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

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

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

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

1 个答案:

答案 0 :(得分: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/