2012-09-17 11 views
11

La mia classe ha una proprietà 'PropertyA', voglio che questo appaia come 'PropertyB' in un oggetto JSON quando è serializzato. C'è qualche tipo di attributo che posso usare?Modifica dei nomi di proprietà per la serializzazione

+3

Quale serializzatore JSON stai usando? JavaScriptSerializer? JSON.NET? DataContractJsonSerializer? ...? –

+0

biblioteca serializzazione JSON Cosa stai usando? – AlSki

+0

Siamo spiacenti, dovrebbe aver dato ulteriori dettagli - DataContractJsonSerializer è quello che sto usando. Grazie. –

risposta

20

Sicuramente.

Per Json.NET e DataContractJsonSerializer utilizzare DataMemberAttribute: http://msdn.microsoft.com/en-us/library/ms574795.

Basta decorare la vostra proprietà

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

Se stai usando JavaScriptSerializer, è necessario creare implementazione derivata, come descritto qui: JavaScriptSerializer.Deserialize - how to change field names

+0

Grazie mille, esatto. –

+0

e se io non ho accesso per modificare la proprietà DataMenber? posso aggiungere un traduttore o qualcosa del genere al momento della serializzazione? – rolivares

+0

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

Problemi correlati