【发布时间】:2020-04-12 00:32:17
【问题描述】:
我有一个带有很多属性(约 80 个属性)的 json 对象,我想在 POJO 中反序列化而不手动创建所有属性。我可以通过使用@JsonAnySetter 和Map 属性来做到这一点,就像描述的here 一样。
现在我想通过使用 Lombok 使我的 POJO 不可变来完成这项工作。
我试过这个,但它只反序列化 id 和 code 属性。关于如何使它工作的任何想法?
@Value
@Builder
@EqualsAndHashCode
@JsonDeserialize(builder = Product.ProductBuilder.class)
class Product {
@JsonProperty
private String id;
@JsonProperty
private String code;
@Getter(AccessLevel.NONE)
@Builder.Default
@JsonProperty
private Map<String, Optional<Object>> any = new HashMap<>();
@JsonAnyGetter
public Map<String, Optional<Object>> getAny(){
return this.any;
}
@JsonAnySetter
public void setAny(String key, Optional<Object> value){
this.any.put(key, value);
}
}
【问题讨论】: