Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java joda LocalTime的Jackson serializaton_Java_Serialization_Spring Boot_Jackson_Jodatime - Fatal编程技术网

Java joda LocalTime的Jackson serializaton

Java joda LocalTime的Jackson serializaton,java,serialization,spring-boot,jackson,jodatime,Java,Serialization,Spring Boot,Jackson,Jodatime,我正在使用SpringBoot和JPA和Jodatime 目前,我有一个模型属性,注释如下: @Type(type="org.jadira.usertype.dateandtime.joda.PersistentLocalTime") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm") private LocalTime startTime; { "startTime": "12:00" } 序列化后,JSON将

我正在使用SpringBoot和JPA和Jodatime

目前,我有一个模型属性,注释如下:

@Type(type="org.jadira.usertype.dateandtime.joda.PersistentLocalTime")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime startTime;
{
  "startTime": "12:00"
}
序列化后,JSON将变成:

{
"startTime" : {
      "hourOfDay" : 12,
      "minuteOfHour" : 0,
      "secondOfMinute" : 0,
      "millisOfSecond" : 0,
      "chronology" : {
        "zone" : {
          "fixed" : true,
          "id" : "UTC"
        }
      }
}
我想知道是否有办法将该属性序列化为如下所示:

@Type(type="org.jadira.usertype.dateandtime.joda.PersistentLocalTime")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime startTime;
{
  "startTime": "12:00"
}

我尝试过使用@JsonFormat注释,但它似乎不起作用。

您可以执行以下操作:

@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数据绑定库

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.databind-version}</version>
    </dependency>

你可以这样做:

@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数据绑定库

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.databind-version}</version>
    </dependency>

可能重复的可能重复的不应该扩展JsonSerializer?@kandan是的!我会修好的!不应该扩展JsonSerializer吗?@kandan是的!我会修好的!