![](/img/trans.png)
[英]How to ignore certain fields for deserialization without jackson annotations?
[英]Ignore some fields deserialization with jackson without changing model
我正在尋找一種配置傑克遜解串器以忽略某些字段的方法。 我不想通過注釋模型來實現這一點,因為它是由另一個項目給出的。 我只是想通過構造解串器(ObjectMapper)來做到這一點。
可能嗎?
你必須做以下
1)編寫自己的Deserializer,以擴展JsonDeserializer
2)覆蓋反序列化方法並在忽略某些字段后返回您的類對象
3)向ObjectMapper注冊反序列化器
ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule();
module.addDeserializer(yourClass.class, new yourDerializer());
mapper.registerModule(module);
String newJsonString = "{\"id\":1}";
final yourClass yourClassObject= mapper.readValue(newJsonString, yourClass.class);
希望這能解決您的問題
您可以使用Mix-In
注釋來實現。
class ThirdPartyReadOnlyClass {
private String ignoredPropertyFromThirdParty;
public String getIgnoredPropertyFromThirdParty() {
return ignoredPropertyFromThirdParty;
}
}
abstract class MixIn {
@JsonIgnore
String getIgnoredPropertyFromThirdParty();
}
您可以將JSON注釋放在MixIn類上,就像將它們放在原始模型類上一樣。
配置對象映射器
objectMapper.addMixInAnnotations(ThirdPartyReadOnlyClass.class, MixIn.class);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.