2015-04-23 8 views
0

У меня есть следующий код в Web API ASP.NET 2 приложения:Как переопределить имя в JSON, возвращаемой ASP.NET

[DataMember(Name = "override")] 
public bool? _override; 

Но JSON я получаю есть этот член с именем _override, а не переопределения. Как изменить имя в JSON?

+0

Это поможет? http://stackoverflow.com/questions/4686817/serialize-net-object-to-json-controlled-using-xml-attributes – Chetan

+0

Я не понимаю, вы получаете этот JSON откуда-то и изнутри у JSON есть имя, которое вы хотите изменить? Тогда ответ - это разговор с тем, кто посылает вам JSON и просит их изменить его. –

+0

Приложение для сервера веб-API ASP.NET имеет вышеуказанное объявление. ASP.NET создает JSON из вызова, где я передаю объект, который включает вышеупомянутый элемент, и ASP.NET JSONizes объекта на основе имен объектов. –

ответ

4

Как ASP.NET Web API 2 использует Json.NET внутренне для сериализации JSON/десериализации

JsonProperty атрибут может использоваться, чтобы переопределить свойство имя при сериализации.

поэтому [JsonProperty(PropertyName = "override")] должен сделать трюк.

Спасибо.

0

Как насчет использования имени, которое вы хотите вывести? public bool? @override;

Вы также можете использовать атрибут DataMember(Name="override) на вашем методе, и DataContract атрибут вашего класса, а затем использовать DataContractJsonSerializer класс сериализовать его.

Посмотреть этот пост полный пример о том, как использовать DataContractJsonSerializer: JavaScriptSerializer - how to deserialize a property with a dash ("-") in it's name?