Вы можете преобразовать дату в любой формат, который вы хотите использовать для ответа JSON.
В вашем случае вы все время использовали преобразователь даты JSON по умолчанию для полей типа java.util.Date
.Это в основном то, что генерируется для вас Spring Roo.Взгляните и в ваших аспектах * _Roo_Json, и вы найдете что-то.как это:
public java.lang.String PizzaOrder.toJson() {
return new JSONSerializer().exclude("*.class").serialize(this);
}
Такая реализация использует класс flexjson.transformer.BasicDateTransformer
для преобразования даты для вас.Он реализован следующим образом:
public class BasicDateTransformer extends AbstractTransformer {
public void transform(Object object) {
getContext().write(String.valueOf(((Date) object).getTime()));
}
}
Вам нужно использовать другой, более мощный трансформатор.К счастью, он поставляется с вашим ру и называется flexjson.transformer.DateTransformer
.Теперь, чтобы правильно отформатировать даты, просто замените значение по умолчанию на новый трансформатор, например, так:
public java.lang.String PizzaOrder.toJson() {
return new JSONSerializer().exclude("*.class")
.transform(new DateTransformer("MM/dd/yyyy"), Date.class)
.serialize(this);
}
Вот и все: -)
Знайте, что вы также можете применять разные Date
(и не только) преобразований для различных полей, таких как:
transform(new DateTransformer("MM/dd/yyyy"), "person.birthday")
Для получения дополнительной информации о flexjson посмотрите на страницу проекта FLEXJSON .