Я создал проект ASP.Net WEB API, который будет использоваться мобильным приложением. Мне нужен ответ json, чтобы опустить свойства null вместо того, чтобы возвращать их как property: null
.
Как я могу это сделать?
Я создал проект ASP.Net WEB API, который будет использоваться мобильным приложением. Мне нужен ответ json, чтобы опустить свойства null вместо того, чтобы возвращать их как property: null
.
Как я могу это сделать?
В 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);
Я закончил с этой частью кода в файле startup.cs с помощью ASP.NET5 1.0.0-beta7
services.AddMvc().AddJsonOptions(options =>
{
options.SerializerSettings.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);
});
}
Я знаю, что эта тема существует уже около двух лет, но если вы вернетесь к документации JSON.NET, в ней есть подробная информация о том, как решить проблему сокращения сериализованного размера JSON для разных сценариев, таких как игнорирование всех null, игнорируя все значения по умолчанию, игнорируя значение null или значение по умолчанию только для определенных свойств и т.д.:
http://www.newtonsoft.com/json/help/html/reducingserializedjsonsize.htm