为什么Date的JSON键序列化与JSON值的序列化不同?

时间:2016-10-28 18:02:44

标签: groovy jsonbuilder

使用以下代码:

def date = new Date()
println new groovy.json.JsonBuilder([(date): date]).toString()

结果类似于

{"Fri Oct 28 15:00:45 ART 2016":"2016-10-28T18:00:45+0000"}

我期待与同一日期的关键和值相同的表示。

我可以强制JsonBuilder输出格式与值相同的键吗?

1 个答案:

答案 0 :(得分:1)

事实上,JsonBuilder将默认使用日期格式new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"),我知道这不是你想要改变的。由于“key”部分是使用toString()方法序列化的,因此您有两种解决方案:使用[date.format("yyyy-MM-dd'T'HH:mm:ssZ"): date]或使用metaProgramming重载Date.toString()(它将用于每个Date对象,尽管,所以你可能不希望这样。)