WebApi - Desserializando e serializando nomes de propriedades alternativas
Estou tentando descobrir como posso especificar nomes de propriedades alternativos com o ASP.NET WebApi - e fazê-lo funcionar para desserialização + serialização e JSON + XML. Eu só descobri soluções parciais até agora.
Desejo expor os nomes das propriedades como minúsculas com sublinhados e (por exemplo) têm nomes internos diferentes:
Externo:
campo umcampo doisInterno:
ItemOneItemDoisPara teste, aqui está uma ação do controlador POST que apenas retransmite o que recebe:
// POST api/values
public TestSerialization Post([FromBody]TestSerialization value)
{
return value;
}
E uma entidade de teste:
public class TestSerialization
{
[DataMember(Name = "field_one")] // Doesn't appear to change anything
public string ItemOne { get; set; }
[JsonProperty(PropertyName = "field_two")] // Only works for serialization in JSON mode
public string ItemTwo { get; set; }
}
Até agora, eu encontrei:
[DataMember (Name = "x")] não afeta a serialização em nenhuma direção[JsonProperty (Name = "x")] funciona na serialização (o valor retornado) ao usar JSON. (É um atributo JSON.NET, o serializador padrão).Para dados de teste, submeto 4 propriedades, para ver qual valor é desserializado e qual o nome da propriedade na desserialização
ItemOne = "Valor A"ItemTwo = "Valor B"campo um = "1 correto"campo dois = "2 corretos"Como posso conseguir isso?