1
A
回答
1
關鍵的決定是您描述的約束是系統/技術還是應用程序的業務邏輯指定的約束。 Jackson僅僅是一個序列化/反序列化庫。驗證序列化數據的正確性通常超出其範圍。
你可以,當然,使用自定義解串器,將驗證輸入的正確性和無效的輸入扔JsonParseException
。但是,這種方法可能會使解析器處於不穩定狀態。因此,它應該用於捕獲與序列化本身相關的問題,例如嘗試反序列化對象的不兼容版本,其中丟棄整個輸入通常是有效的解決方案。
對於大多數情況下,我會建議留下任何深入驗證用戶輸入到您的實際應用程序代碼。保持序列化器和解串器的實現儘可能簡單 - 即使應用程序邏輯發生變化,也可以保持不變。
試圖將實際的業務邏輯到JSON解析器只會體系結構複雜化。它會將系統錯誤的處理(例如不兼容對象的序列化)與應用程序錯誤(例如惡意客戶端同時填寫與不同用戶組相關的字段)混合處理。
相關問題
- 1. 必填字段中的一個
- 2. JSON Schema:必填字段
- 3. 兩個必填字段
- 4. 使用Lucene MultiFieldQueryParser多個必填字段
- 5. 所有字段都給這個字段是必填的錯誤
- 6. 驗證一個必填字段
- 7. JSON填充多個選擇字段
- 8. 做一個必填字段,如果其他字段值
- 9. 在Golang中解組json:必填字段?
- 10. PHP必填字段(一個或多個)丟失
- 11. flex中的必填字段
- 12. CSVHelper必填字段
- 13. 表必填字段
- 14. 必填字段InfoPath
- 15. 輸入字段必填字段
- 16. 如何讓字段爲必填字段?
- 17. 必填字段上collection_select類型字段
- 18. 必填字段'LogicalName'缺少字段'Target'
- 19. JSON數組需要必填字段
- 20. 一個字段中有多個值Yii2
- 21. 。每個字段只有一個字段
- 22. 檢查是否有多個必填字段爲空
- 23. 如何驗證以便至少需要1個字段,當第二個字段有兩個必填字段時
- 24. CodeIgniter:如何檢查其中一個字段是否爲必填字段
- 25. CCK字段裏面有多個字段
- 26. 至少有一個字段必須填寫,cakephp驗證
- 27. 必需=「必需」輸入字段有條件的另一個輸入字段
- 28. 我應該如何在C#中測試多個必填字段?
- 29. 發佈帶有可選字段和必填字段的表單
- 30. JSON模式 - 根據另一個字段的值,指定字段是必需的
是的,這就是我最終做的。謝謝。 – Ryan