您可以将日期转换为您希望用于您的JSON响应的任何格式。
对于您的情况,您一直使用java.util.Date
类型字段的默认JSON日期变换器。这基本上是由Spring Roo为您生成的。看看你的* _Roo_Json方面,你会发现smth。像这样:
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()));
}
}
你想要的是使用一个不同的,更强大的变压器。幸运的是它带着你的Roo,叫做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 project page。
也许不是你的情况,但...转换和表示日期应该在视图/输入层(浏览器或选择的视图技术:JSP,JSF ...)上完成。这是因为您通常需要考虑用户时区和区域设置来呈现它们。因此,您需要考虑在您的控制器中提供本地化的AJAX结果......或者在客户端执行。 – jjmontes