【发布时间】:2019-09-18 00:50:46
【问题描述】:
我想将 Hashmap 类型转换为 POJO。我目前正在使用 jackson 对其进行转换,但是,由于该请求是 API 请求,因此用户可能会提供比需要更多的字段。 例如, 哈希图可以是:
{
field1ID:"hi",
field2ID:["HI","HI","JO"],
field3ID:"bye"
}
虽然pojo很简单
{
field1ID:"hi",
field3ID:"bye"
}
当使用ObjectMapper.convertValue 时,除非存在从 hashmap 到 pojo 的一对一映射,否则将抛出 IllegalArguemetException。我要做的是,如果该字段存在,则映射该字段。否则将其保留为空。
【问题讨论】:
-
您是否尝试将对象映射器设置为不会在未知属性上失败?即声明对象映射器:
new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) -
只用
@JsonIgnoreProperties(ignoreUnknown = true)注释pojo