【发布时间】: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 生成日期字段?
【问题讨论】:
-
我不认为你可以从 Gson 生成 mongodb 兼容的 json。你会考虑使用 BSON 吗? mongodb.github.io/mongo-java-driver/3.2/bson/extended-json/…
-
感谢您的评论,我会检查我需要改变多少才能采用 BSON。如果您愿意,请输入您的评论作为答案。