我有一個spring web服務,它有控制器返回Java對象。我已將服務設置爲使用@RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE)
,以便在Json中響應。據我瞭解,Spring使用Jackson將Java對象序列化爲Json。我有一個我想爲其創建自定義json序列化程序的類。我想要使用自定義序列化程序的唯一原因是避免序列化對象的特定屬性作爲API響應的一部分。Spring Jackson排除序列化期間的特定屬性
例如:
我的控制器方法返回Foo
。 Spring將序列化所有屬性作爲API響應的一部分。但是,我想排除rawBar
。
public final class Foo{
Bar propBar;
Bar intermediateBar;
Bar rawBar;
FooBar status;
}
我見過使用StdSerializer<T>
創建一個自定義序列化的例子。但是,這樣做意味着我將不得不編寫自定義代碼來序列化其他屬性。有沒有辦法排除特定的財產?另外,Foo
是第三方庫的一部分,因此不可能對該類進行更改。是否有可能爲Foo
創建我自己的序列化程序,但是然後使用默認序列化程序來序列化除rawBar
以外的所有屬性?
美孚是第三方庫的一部分,所以修改該課程是不可能的 – AndroidDev93
答案更新了,請檢查它是否有效。 – mhshimul
嘗試在需要排除的屬性頂部使用@JsonIgnore註釋。它在傑克遜圖書館。 – user121290