在 Web API 中使用 JSON.NET 排除雙重序列化問題
Web API 開發中的一個常見問題涉及 JSON.NET 意外地將物件序列化兩次。當將 JsonConvert.SerializeObject(instance)
與 JsonConvert.DefaultSettings
中的 WebApiConfig
中定義的自訂轉換器一起使用時,通常會發生這種情況。結果是用雙引號引起來的 JSON 響應,並帶有轉義的內部引號。
解決方案很簡單:避免使用 JsonConvert.SerializeObject
手動序列化物件。相反,讓 Web API 控制器處理序列化過程。 只需直接返回您的物件即可:
<code class="language-csharp">public IEnumerable<foobar> GetFoobars() { var foobars = ...; return foobars; }</code>
透過傳回沒有明確序列化的 foobar
對象,Web API 控制器將使用其預設設定將資料序列化為 JSON 或 XML,具體取決於客戶端的請求。這消除了雙重序列化問題。
更多資源:
以上是為什麼 JSON.NET 在 Web API 中序列化我的物件兩次,我該如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!