Renomear o campo no JSonserializer
-
19-09-2019 - |
Pergunta
Eu tenho uma biblioteca de classes que preciso produzir por meio de um JSONRESULT na estrutura do ASP.NET MVC. (O JSONRESULT usa o jsonserializer para produzir sua saída.)
Eu descobri ao ler a documentação de que, se você colocar [ScriptIgnore]
Em uma propriedade pública/campo, não será serializado, assim como [XmlIgnore]
Para o serializador XML.
Eu preciso da funcionalidade equivalente de [XmlElement("elementname")]
, que especifica absolutamente o nome do campo/propriedade na serialização de saída. Eu tenho um campo chamado Elements
que precisa ser serializado para um campo chamado elements
.
Como posso conseguir isso usando o JSOnserializer padrão?
Obrigado, David
Solução
Você está usando o DATACONTRATTJSOSERILIZER classe?
Se for assim ...
Adicione este atributo a você Elements
campo
[DataMember(Name = "elements")]
este Então pergunta sugere como substituir o uso do JSOnscriptSerializer para o JSONDATACONTRATRANTSERializer.
Gentileza,
Dan
Outras dicas
A resposta infeliz é que você não pode fazer isso. Dito isto, atualmente estou desenvolvendo um módulo que estenderá qualquer objeto produzindo em tempo de execução um objeto anônimo que seguirá as regras de atributos, como Jsonignore ou JsonProperty. Vou postar mais quando tiver algo.