我需要忽略基於用戶輸入/或Spring安全角色的對象響應中的某些屬性的序列化(JSon/Jackson和XML/XStream)(例如,您無權查看此字段的內容,但所有其他人都沒問題等)。如何在Spring MVC Rest中做到這一點? 另一種方法是隻顯示相關的API的用戶,喜歡這裏http://googlecode.blogspot.com.br/2010/03/making-apis-faster-introducing-partial.htmlSpring MVC Rest:如何在Json和XML中實現部分響應?
2
A
回答
1
描述如果使用的是傑克遜,這裏是一些可能的選項來修改JSON序列化的屬性:
使用@JsonIgnore註釋 - 然而,這是靜態的過濾,並且不會讓你因爲你看起來需要
使用@JsonFilter實現基於規則的過濾 - 這將讓你實現一個接口,可以在其中提供喲你的序列化過濾邏輯。你可能會發現這個解決方案太重了。
我經常解決這個問題的方法是從我的Controller方法而不是基礎對象返回一個Map。您可以編寫處理代碼,將對象中的相關字段放入Map中,因此可以完全控制序列化的內容。您可以在Object上包含一個方法來進行轉換。該方法可以是這個樣子:
// RequestObj is whatever 'input' object that indicates what should be filtered public Map<String,Object> convertToMapForRequest(RequestObj request){ // Build return map based on 'this' and request }
相關問題
- 1. spring mvc rest響應json和xml
- 2. 如何讓spring mvc輸出xml響應?
- 3. Spring MVC - JSON響應 - 如何防止
- 4. Spring MVC - > JSON響應
- 5. Spring mvc - 爲XML和JSON響應配置錯誤處理
- 6. 如何在Spring-Rest中實現application/vnd.api + json媒體類型?
- 7. Spring REST 3支持XML和JSON
- 8. SOAP和REST如何使用XML/JSON響應?
- 9. Spring MVC,REST,JSON和DispatcherServlet和@RequestMapping
- 10. Spring MVC/Rest - 返回標準響應
- 11. 在spring中添加xml屬性rest xml響應
- 12. Spring 3 MVC基於標頭的JSON REST響應
- 13. 如何爲Spring @MVC 3.0 REST應用程序實現身份驗證和授權
- 14. 實現在Servlet中的XML和JSON之間切換的REST api
- 15. REST響應 - HTML響應vs JSON或XML中「預期」的含義
- 16. Spring mvc rest,json和xml輸出包含包名
- 17. Spring MVC中的響應實體3.1.1
- 18. Spring MVC的REST/JSON服務
- 19. DI和IOC在spring mvc中的實現
- 20. Spring MVC - 響應
- 21. REST響應中的多媒體內容(XML/JSON)
- 22. 支持clojure中的xml和json REST響應
- 23. Spring MVC和Spring Data Rest
- 24. Spring MVC的JSON響應阿賈克斯
- 25. Spring REST服務:如何配置刪除json響應中的空對象
- 26. 如何緩存REST響應,Spring For Android
- 27. 如何驗證Spring Boot Rest響應?
- 28. 在Spring MVC中緩存HTTP響應Rest服務
- 29. 在Spring REST中自定義Jackson XML響應
- 30. 在Spring集成中使用來自REST調用的XML響應
感謝@馬特,但這種方法只適用於JSON和XML不輸出,並返回地圖<字符串,對象>是過於抽象,這樣做我將失去回報的語義。我會繼續尋找更好的解決方案並讓你知道。 –
現在我把註釋放在我的課上 @JsonSerialize(include = JsonSerialize.Inclusion.NON_DEFAULT) public class MyClass {} 並將我不喜歡的值設置爲Null。 (在Spring中默認的xml行爲不是打印空值) –
@ wandi.darko你有沒有找到一個很好的方法來做到這一點?我一直在尋找一個好方法,除了瑜伽https://github.com/skyscreamer/yoga圖書館,我還沒有找到任何可行的方法。 – Seagull