Estoy usando Json.Net para mi sitio web. Quiero que el serializador serialice los nombres de las propiedades en camelcase de forma predeterminada. No quiero que cambie los nombres de propiedad que asigné manualmente. Tengo el siguiente código:CamelCase solo si PropertyName no se establece explícitamente en Json.Net?
public class TestClass
{
public string NormalProperty { get; set; }
[JsonProperty(PropertyName = "CustomName")]
public string ConfiguredProperty { get; set; }
}
public void Experiment()
{
var data = new TestClass { NormalProperty = null,
ConfiguredProperty = null };
var result = JsonConvert.SerializeObject(data,
Formatting.None,
new JsonSerializerSettings {ContractResolver
= new CamelCasePropertyNamesContractResolver()}
);
Console.Write(result);
}
La salida de Experiment
es:
{"normalProperty":null,"customName":null}
Sin embargo, quiero que la salida sea:
{"normalProperty":null,"CustomName":null}
Es esto posible lograr?
no usar '' CamelCasePropertyNamesContractResolver' y utilizar JsonProperty' solamente. –
@ L.B Si solo uso JsonProperty, el nombre predeterminado será PascalCase, por lo que 'normalProperty' será' NormalProperty' en el JSON. – Oliver
Oliver No, se serializa exactamente como lo que das en JsonProperty. –