我有一个带有OffsetDateTime字段的模型:
public class Todo {
@ApiModelProperty(required = true, value = "")
@JsonProperty("creationTime")
@Getter
@Setter
OffsetDateTime creationTime;
@ApiModelProperty(required = true, value = "")
@JsonProperty("title")
@Getter
@Setter
String title;
}
Springboot总是为creationTime字段分配一个空值。如果我不提供ISO861格式的日期时间,则会出现解析异常。
但是,在实现@JsonComponent类之后,我可以看到正在分配的值。
@JsonComponent
public class OffsetDateSerializer {
public static class OffSetDateDeserializer extends JsonDeserializer<OffsetDateTime> {
@Override
public OffsetDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
System.out.println("Some");
TreeNode treeNode = jsonParser.getCodec().readTree(jsonParser);
TextNode textNode = (TextNode) treeNode;
return OffsetDateTime.parse(textNode.asText());
}
}
}
这是怎么回事?
答案 0 :(得分:0)
您应该为组件扫描配置OffsetDateSerializer的路径。 JsonComponentModule(org.springframework.boot.jackson)注册使用@JsonComponent注释的json bean。
@Configuration
@ComponentScan("your OffsetDateSerializer's path")
public class SerializerConfig {
}