为什么 Date 对 JSON 键的序列化与对 JSON 值的序列化不同?
Why does Date serialize for a JSON key differently than it does for a JSON value?
使用以下代码:
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 输出与值格式相同的键吗?
事实上,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 对象,不过,所以你可能不想要那个)。
使用以下代码:
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 输出与值格式相同的键吗?
事实上,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 对象,不过,所以你可能不想要那个)。