С помощью следующего кода:Почему дата сериализуется для ключа JSON иначе, чем для значения JSON?
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 использует toString в контексте и SimpleDateFormat в другом? Есть ли причина? – Fernando
Для ключей (в парах ключ/значение) он просто использует строковое представление по умолчанию для ключевого объекта, которое обычно получается с помощью 'toString()', и нет смысла рассматривать значения «Date» по-разному. Но дата _values_ в JSON должна быть отформатирована таким образом, чтобы javascript смог их проанализировать (см. Http://stackoverflow.com/questions/10286204/the-right-json-date-format), и поэтому JsonBuilder рассматривает объекты Date соответственно. – sensei