在 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中文网其他相关文章!