我在JPA和Jodatime中使用Spring Boot。
目前我的模型属性注释如下:
>>> from hdfs3 import HDFileSystem
>>> hdfs = HDFileSystem(host='localhost', port=8020)
>>> hdfs.ls('/user/data')
>>> hdfs.put('local-file.txt', '/user/data/remote-file.txt')
>>> hdfs.cp('/user/data/file.txt', '/user2/data')
序列化后,JSON正在变为:
@Type(type="org.jadira.usertype.dateandtime.joda.PersistentLocalTime")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime startTime;
我想知道是否有办法将该属性序列化为:
{
"startTime" : {
"hourOfDay" : 12,
"minuteOfHour" : 0,
"secondOfMinute" : 0,
"millisOfSecond" : 0,
"chronology" : {
"zone" : {
"fixed" : true,
"id" : "UTC"
}
}
}
我试图将那个{
"startTime": "12:00"
}
注释,但它似乎不起作用。
答案 0 :(得分:3)
您可以执行以下操作:
@JsonSerialize(using = MyLocalTimeSerializer.class)
private LocalTime startTime;
然后创建MyLocalTimeSerializer.class:
public class MyLocalTimeSerializer extends JsonSerializer<LocalTime> {
@Override
public void serialize(
LocalTime time,
JsonGenerator gen,
SerializerProvider arg2) throws IOException, JsonProcessingException {
gen.writeString(time.toString("HH:mm"));
}
}
这需要jackson-databind库。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.databind-version}</version>
</dependency>