Sto usando Json.Net per il mio sito web. Voglio che il serializzatore serializzi i nomi di proprietà in camelcase per impostazione predefinita. Non voglio che cambi i nomi di proprietà che assegno manualmente. Ho il seguente codice:CamelCase solo se PropertyName non è impostato in modo esplicito in 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);
}
L'uscita da Experiment
è:
{"normalProperty":null,"customName":null}
Tuttavia, voglio l'output di essere:
{"normalProperty":null,"CustomName":null}
È questo possibile raggiungere?
non usare 'CamelCasePropertyNamesContractResolver' e usare' JsonProperty' solo. –
@ L.B Se utilizzo solo JsonProperty, il nome predefinito sarà PascalCase, quindi 'normalProperty' sarà invece' NormalProperty' nel JSON. – Oliver
Oliver No, è serializzato esattamente come ciò che si dà in JsonProperty. –