繼承人是傑克遜的問題2.3我沒有可能改變爲其他框架。如何防止傑克遜序列化第三方類中的字段
我想使用傑克遜2.3序列化對象到json。 某些對象來自實現特定(外部)接口的第三方庫。 我想實現的是防止這些對象中的某些字段被序列化。 我無權修改此類,因此@JsonIgnore不會剪切它。 這裏有一個例子
public interface ThirdParty{
public char[] getPassword();
public String getUser();
public Department getDepartment();
}
我是新來的傑克遜,但有一種感覺,它應該是相當簡單的做這樣的事情
ObjectMapper mapper=new ObjectMapper();
SimpleModule testModule = new SimpleModule("DemoModule",VersionUtil.versionFor(this.getClass()));
testModule.addSerializer(ThirdParty.class, new Some_Serializer_That_Can_Ignore_Password()));
mapper.registerModule(testModule);
(我不認爲有什麼叫做一個Some_Serializer_That_Can_Ignore_Password,我想要的是不能序列化該字段的東西) 我不想寫很多代碼來使它工作,我已經看到了舊版傑克遜的相當詳細的例子,但沒有一個用於傑克遜2.3。
謝謝!
您可以使用傑克遜的混入:有些過時的文檔(http://wiki.fasterxml.com/JacksonMixInAnnotations),([關於與傑克遜的兩個例子過時的文檔問題] https://github.com/FasterXML/jackson-docs/issues/2),[SO搜索jackson mixin](http://stackoverflow.com/search?q=jackson+mixin)。 –