我有一個MVC 4 Web API。通常我想要返回所有屬性的響應,但有一個地方我只想返回非空值。我可以通過在全局文件中設置GlobalConfiguration.Configuration
實例的Formatters.JsonFormatter.SerializerSettings.NullValueHandling
的JsonSerializerSettings來設置任何行爲,但我希望根據響應使用兩者。是否有一種簡單的方法可以在API控制器操作中配置請求範圍?根據響應設置JsonSerializerSettings?
0
A
回答
2
通過更改您的控制器操作以返回HttpResponseMessage,您可以更好地控制特定操作返回內容的方式。例如
public HttpResponseMessage Get() {
var foo = new Foo();
var objectContent = new ObjectContent<Foo>(foo, new JsonFormatter()
{SerializerSettings.NullValueHandling = ???})
return new HttpResponseMessage() {Content = objectContent};
}
0
這可能會更容易做在客戶端與動態語言,如JavaScript。
var keys = Object.keys(json);
for(var i = 0; i < keys.length; i++) {
var propertyName = keys[i];
if(json[propertyName] === undefined || v[propertyName] === null) {
json.remove(propertyName);
}
}
return json;
相關問題
- 1. 我如何設置Akavache JsonSerializerSettings?
- 2. 根據環境對響應設置了nginx設置標題var
- 3. Apache httpd:根據其他*響應*標頭有條件地設置響應頭
- 4. 根據JSON響應
- 5. 根據響應更新LinearLayout
- 6. ajax繼續根據響應
- 7. MainActivity根據設置
- 8. 根據buildvariant設置應用標籤
- 9. nodejs設置數據響應超時
- 10. 如何設置域響應[「設置Cookie」]
- 11. 根據屏幕大小將列設置爲新行,使網站響應
- 12. 如何根據響應時間在循環中設置定時器?
- 13. 設置servlet以根級別響應?在Azure雲
- 14. 設置響應HTML背景
- 15. 響應式bootstrap-sass設置
- 16. Apache ISIS:設置HTTP響應
- 17. nginx的響應設置
- 18. 根據SharedPreferences設置OnClickListeners
- 19. 根據日期設置Alpha
- 20. 根據ifstream設置變量
- 21. mod_rewrite:根據HTTP_HOST設置GET
- 22. 根據時間設置Cookie
- 23. 根據user_type設置登錄
- 24. 根據情況設置ImageView
- 25. JsonSerializerSettings和Asp.Net核心
- 26. 自適應設計/根據
- 27. 根據變量更改響應
- 28. 如何根據服務器響應
- 29. 根據Json響應添加Toast
- 30. 根據其響應計劃任務
這甚至沒有必要。在這種情況下,我只是想通過慢速連接來發送大量的數據。 – Paul
除此之外,我可以想象在未來更改其他序列化選項,而這些選項在客戶端並不那麼容易實施。 – Paul