Cambiar el nombre de campo en JSonserializer
-
19-09-2019 - |
Pregunta
Tengo una biblioteca de clase que necesito emitir a través de un JSONRESULT en el marco ASP.NET MVC. (JsonResult usa el JSonserializer para producir su salida).
Descubrí al leer la documentación de que si pones [ScriptIgnore]
En una propiedad/campo público, no se serializará, al igual que [XmlIgnore]
para el serializador XML.
Necesito la funcionalidad equivalente de [XmlElement("elementname")]
, que especifica absolutamente el nombre del campo/propiedad en la serialización de salida. Tengo un campo llamado Elements
que necesita ser serializado a un campo llamado elements
.
¿Cómo puedo lograr esto usando el JSonserializer predeterminado?
Gracias David
Solución
¿Estás usando el DataContractjSonserializer ¿clase?
Si es así ...
Agregue este atributo a usted Elements
campo
[DataMember(Name = "elements")]
Este Cuestión sugiere cómo anular el uso de JSonscriptSerializer a JSondatAcontractSerializer.
Amabilidad,
Dan
Otros consejos
La desafortunada respuesta es que no puedes hacerlo. Dicho esto, actualmente estoy desarrollando un módulo que extenderá cualquier objeto produciendo en tiempo de ejecución un objeto anónimo que seguirá las reglas de los atributos, como Jsonignore o JsonProperty. Publicaré más cuando tenga algo.