c# - una - Propiedades de serialización de API web a partir de letra minúscula
saber si una letra es mayuscula c# (4)
¿Cómo puedo configurar la serialización de mi API web para usar los nombres de las propiedades camelCase
(comenzando desde minúsculas) en lugar de PascalCase
como en C #?
¿Puedo hacerlo globalmente para todo el proyecto?
ASP.NET CORE 1.0.0 Json serializa tiene camelCase por defecto. Árbitro este anuncio
Para MVC 6.0.0-rc1-final
Edite Startup.cs , en ConfigureServices(IserviceCollection)
, modifique services.AddMvc();
services.AddMvc(options =>
{
var formatter = new JsonOutputFormatter
{
SerializerSettings = {ContractResolver = new CamelCasePropertyNamesContractResolver()}
};
options.OutputFormatters.Insert(0, formatter);
});
Si desea cambiar el comportamiento de serialización en Newtonsoft.Json alias JSON.NET, debe crear su configuración:
var jsonSerializer = JsonSerializer.Create(new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver(),
NullValueHandling = NullValueHandling.Ignore // ignore null values
});
También puede pasar estas configuraciones a JsonConvert.SerializeObject
:
JsonConvert.SerializeObject(objectToSerialize, serializerSettings);
Para ASP.NET MVC y API web. En Global.asax:
protected void Application_Start()
{
GlobalConfiguration.Configuration
.Formatters
.JsonFormatter
.SerializerSettings
.ContractResolver = new CamelCasePropertyNamesContractResolver();
}
Excluir valores nulos:
GlobalConfiguration.Configuration
.Formatters
.JsonFormatter
.SerializerSettings
.NullValueHandling = NullValueHandling.Ignore;
Indica que los valores nulos no deberían incluirse en el JSON resultante.
ASP.NET Core
ASP.NET Core de forma predeterminada serializa los valores en formato camelCase.
Si desea hacer esto en la versión más reciente (vNext) C # 6.0, debe configurar esto a través de MvcOptions
en el método ConfigureServices
ubicado en el archivo de clase Startup.cs
.
services.AddMvc().Configure<MvcOptions>(options =>
{
var jsonOutputFormatter = new JsonOutputFormatter();
jsonOutputFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
jsonOutputFormatter.SerializerSettings.DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Ignore;
options.OutputFormatters.Insert(0, jsonOutputFormatter);
});