我需要将Map〈String,Object〉转换为POJO并保持Map的所有原始类型。
以这个简单的POJO为例:
@Data
@JsonInclude(Include.NON_NULL)
public class mObj{
private String id;
private Object value;
}
我需要的值是相同的类型存储在Map〈字符串,对象〉。如果我的map是:
Map<String, Object> data = Map.of("id", "123", "value", OffsetDateTime.now(ZoneId.of("Z")));
然后我期望在转换为myObj之后,Object值的类是OffsetDateTime。
我尝试使用Jackson进行转换,尽管它似乎保留了大多数类型,但对于java等时间戳类,它并不能很好地工作。time.OffsetDateTime.相反,它将其转换为String。
对于这种情况,我如何保持Map中的原始类型?
1条答案
按热度按时间ndh0cuux1#
使用从Lombok获得的setter似乎可以很好地工作:
否则,我建议在你的类中添加一个@AllArgsConstructor来实现这种简化: