2012-09-17 17 views
11

Mi clase tiene una propiedad 'PropertyA', quiero que aparezca como 'PropertyB' en un objeto JSON cuando se serializa. ¿Hay algún tipo de atributo que pueda usar?Cambiar nombres de propiedad para serializar

+3

Qué serializador JSON está usando? ¿JavaScriptSerializer? JSON.NET? DataContractJsonSerializer? ...? –

+0

¿Qué biblioteca de serialización JSON está utilizando? – AlSki

+0

Lo siento, debería haber dado más detalles - DataContractJsonSerializer es lo que estoy usando. Gracias. –

Respuesta

20

Definitivamente.

Para Json.NET y DataContractJsonSerializer use DataMemberAttribute: http://msdn.microsoft.com/en-us/library/ms574795.

Sólo decorar su propiedad

[DataMember(Name="PropertyB")] 
T PropertyA { ... } 

Si está utilizando JavaScriptSerializer, es necesario para crear la aplicación derivada, tal como se describe aquí: JavaScriptSerializer.Deserialize - how to change field names

+0

Muchas gracias, perfecto. –

+0

y si no tengo acceso para cambiar la propiedad de DataMenber? ¿Puedo agregar un traductor o algo así en el momento de la serialización? – rolivares

+0

http://stackoverflow.com/questions/13091862/change-the-way-json-net-serializes-property-names – Bartosz

Cuestiones relacionadas