2012-09-17 122 views
11

我的类有一个属性'PropertyA',我希望它在序列化时在JSON对象中显示为'PropertyB'。有什么我可以使用的属性?更改序列化的属性名称

+3

哪些JSON序列您使用的? JavaScriptSerializer? JSON.NET? DataContractJsonSerializer? ...? –

+0

您使用的是什么JSON序列化库? – AlSki

+0

对不起,应该已经提供了更多细节 - DataContractJsonSerializer就是我正在使用的。谢谢。 –

回答

20

当然。

Json.NETDataContractJsonSerializer使用DataMemberAttributehttp://msdn.microsoft.com/en-us/library/ms574795

只是装点你的财产

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

如果你使用的JavaScriptSerializer,你需要创建派生实现,如下所述: JavaScriptSerializer.Deserialize - how to change field names

+0

非常感谢,发现。 –

+0

,如果我没有权限更改DataMenber属性?我可以在序列化时添加一个翻译器或类似的东西吗? – rolivares

+0

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

相关问题