繁体   English   中英

我如何强制 JSON 日期在 Java 中不接受整数

[英]How i can force JSON dates to not accept integer in java

我如何使用 Java 强制 JSON 日期使用特定模式并且不接受整数,例如:

{“生日”:1}

不应该被接受。

我试过

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy") private LocalDate 生日;

但仍然接受数字。

首先创建一个类自定义localDate反序列化器

公共类 LocalDateDserializer 扩展 StdDeserializer {

private final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

public LocalDateDserializer() {
    this(null);
}

public LocalDateDserializer(final Class<?> vc) {
    super(vc);
}

@Override
public LocalDate deserialize(final JsonParser jsonparser, final DeserializationContext context)
        throws IOException, JsonProcessingException {
    final String date = jsonparser.getText();
    try {
        return formatter.parse(date).toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
    } catch (final ParseException e) {
        throw new RuntimeException(e);
    }
}

}

使用注解@JsonDeserialize(using = LocalDateDserializer.class) private LocalDatebirthday;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM