我创建了一个ASP.Net WEB API项目,该项目将由移动应用程序使用。我需要响应json省略null属性,而不是将其返回为property: null
。
我怎样才能做到这一点?
我创建了一个ASP.Net WEB API项目,该项目将由移动应用程序使用。我需要响应json省略null属性,而不是将其返回为property: null
。
我怎样才能做到这一点?
Answers:
在WebApiConfig
:
config.Formatters.JsonFormatter.SerializerSettings =
new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore};
或者,如果您想要更多控制权,则可以替换整个格式化程序:
var jsonformatter = new JsonMediaTypeFormatter
{
SerializerSettings =
{
NullValueHandling = NullValueHandling.Ignore
}
};
config.Formatters.RemoveAt(0);
config.Formatters.Insert(0, jsonformatter);
config.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore
-这将更新空值处理,而无需重置任何其他json序列化设置(例如在属性的第一个字母上使用小写字母)
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
。
如果您正在使用vnext,请在vnext Web api项目中,将此代码添加到startup.cs文件中。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().Configure<MvcOptions>(options =>
{
int position = options.OutputFormatters.FindIndex(f => f.Instance is JsonOutputFormatter);
var settings = new JsonSerializerSettings()
{
NullValueHandling = NullValueHandling.Ignore
};
var formatter = new JsonOutputFormatter();
formatter.SerializerSettings = settings;
options.OutputFormatters.Insert(position, formatter);
});
}