[英]Jackson custom filter with full POJO data bind
似乎Json Schema可能符合您的需求。 它允許json字符串的靈活(和復雜)驗證規則在反序列化之前。 它包括必填字段,基於正則表達式的值檢查,行業標准格式(例如,您可以將字段定義為“電子郵件”格式),跨字段依賴項(在最新的v4中)等
以上是與語言無關的標准。 至於Java實現,我使用了這個支持最新的json模式版本(該標准仍在不斷發展)。 驗證器的初始集成是很多工作,(因為我非常動態的json模型)但是之后引入新的驗證規則非常方便(只需要更改json模式文件)
我建議相應地使用Jackson和Hibernate Vaildator來分離反序列化和驗證的問題。 我們的想法是首先將json數據反序列化為POJO,然后根據需求驗證POJO。 在這種情況下,您可以應用類級別約束進行驗證。 類級別約束具有很大的靈活性,可以通過訪問對象實例來驗證多個相關屬性。 它簡單而有力。
通常驗證需要更高層次的關注。 在反序列化之后處理這個問題會更好。 這樣做可以使代碼更容易管理和重用POJO和驗證規則。
只是考慮一下:如果你不關心反序列化過程中的驗證,請為你的POJO類嘗試@JsonIgnoreProperties(ignoreUnknown = true)
注釋。 您可以稍后在實際業務邏輯與pojo類一起使用時進行驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.