我正在使用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字段?
答案 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/