json.net - 在 Json.net 中全局设置 IgnoreSerializedAttribute

标签 json.net asp.net-web-api

我正在开发一个 ASP.NET WebApi(候选发布版)项目,其中使用了多个标有 [Serialized] 属性的 DTO。这些 DTO 不在我的控制范围内,因此我无法以任何方式修改它们。当我从 get 方法返回其中任何一个时,生成的 JSON 包含一堆 k__BackingFields,如下所示:

<Name>k__BackingField=Bobby
<DateCreated>k__BackingField=2012-06-19T12:35:18.6762652-05:00

根据我所做的搜索,这似乎是 problem with JSON.NET's IgnoreSerializableAttribute设置并解决我的问题,我只需要按照文章的建议进行全局设置。如何在 ASP.NET Web api 项目中全局更改此设置?

最佳答案

我找到了摆脱名称中的 k__BackingField 的简单方法。

该片段应该位于 Global.asax.cs 中的 Application_Start() 中的某个位置:

JsonSerializerSettings jSettings = new Newtonsoft.Json.JsonSerializerSettings();
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings = jSettings;

看起来默认设置可以解决这个问题。

关于json.net - 在 Json.net 中全局设置 IgnoreSerializedAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11125476/

相关文章:

c# - 将对象序列化为已包含一个 JSON 属性的 JSON

c# - 从 WebAPI Controller 重定向到子域 - 需要 CORS?

c# - 在 WebAPI 帖子中发现了多项操作 - 为什么这不起作用?

c# - 在创建调用 2 个其他 API 的 API 时,我应该使用同步/异步 API 调用吗?

C# 无法从 API 调用读取 json 响应

c# - JSON.NET:如何在不在数组中的情况下仅序列化 DataTable 对象中的一行?

c# - Web API 重定向不起作用

c# - 在 WebApi ApiController 上启用 OData v4 查询

json - F#:如何将 Json.NET [JsonConstructor] 属性应用于主构造函数?

c# - Json.Net反序列化$type信息到object.property