本文準確來講是探討如何用 Jackson 來序列化 Apache avro 對象,因爲簡單用 Jackson 來序列化 Apache avro 對象會報錯。原因是序列化 Schema getSchema()
時會報錯,後面會講到,需要序列化時忽略該屬性。那麼能不能在 getSchema()
上加上 @JsonIgnore
來忽略該屬性呢?原理上是通的。不過手工修改的 avsc 生成的 Java 文件隨時會因爲重新編譯而還原,所以不太具有實際可操作性,當然通過定製編譯 avsc 用的模板文件來加入 @JsonIgnore
是另一回事。
由於不能在要忽略的字段上添加 JsonIgnore
來控制,而如果我們明確了要忽略的字段類型的話,是能夠定製 Jackson 的 ObjectMapper 來屏蔽某個特定的類型。來看下面序列化 Apache avro 對象的例子:
假設我們有一個 Apache 的 Schema 文件 user.avsc
, 內容如下: 閱讀全文 >>