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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top