【发布时间】:2019-12-29 06:40:33
【问题描述】:
我有以下情况:
有时我会得到这个 JSON 对象
{"id": 1, "cp": "male", "money": 10.0, "startDate": "07:00", "endDate": "10:00"}
还有这个
{"id":1, "cp": "male", "money": 10.0, "startDate": 21600, "endDate": 32400}
您可以看到 JSON 具有相同的字段,但有时 startDate 和 endDate 的格式不同 在第二种情况下以秒为单位。
你有简单的java类
public class Person {
private Integer id;
private String cp;
private Double money;
@JsonDeserialize(converter = StringToLocalTimeConverter.class)
private LocalTime startDate;
@JsonDeserialize(converter = StringToLocalTimeConverter.class)
private LocalTime startDate;
//Getter-Setter
转换器
public class StringToLocalTimeConverter extends StdConverter<String, LocalTime> {
static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ISO_LOCAL_TIME;
@Override
public LocalTime convert(String value) {
Long number = Long.parseLong(value);
return LocalTime.MIN.plusSeconds(number);
}
}
显然我遇到了解析异常,因为由于格式的原因,我无法将两个数据值映射到同一个 LocalTime。
是否可以将两个 JSON 对象 映射到同一个类?我该如何解决这个问题或者我必须创建单独的类 可以应用什么解决方案。
【问题讨论】:
标签: json spring-boot jackson deserialization