我正在尝试序列化包含日期列表的对象,并且我希望以特定格式(yyyy-MM-dd)序列化为日期(字符串)的JSON列表。
private List<Date> executionDates;
会变得像:
"executionDates": [
"2016-07-22",
"2016-07-23",
"2016-07-24"
]
可以使用注释来完成吗?
提前致谢。
答案 0 :(得分:10)
我找到了解决方案。我必须在注释中使用属性contentUsing
而不是using
,如下所示:
@JsonSerialize(contentUsing = JsonDateSerializer.class)
contentUsing 属性用于集合。从课程文档:
用于序列化内容的序列化程序类(一个元素 注释属性的集合/数组,映射的值。只能是 用于属性(方法,字段,构造函数),而不是值 类本身(因为它们通常是通用的)。
答案 1 :(得分:0)
尝试这样的事情:
序列化:
@Component
public class JsonDateSerializer extends JsonSerializer<Date>
{
// ISO 8601
private static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
@Override
public void serialize(Date date, JsonGenerator gen, SerializerProvider provider)
throws IOException, JsonProcessingException
{
String formattedDate = dateFormat.format(date);
gen.writeString(formattedDate);
}
}