Управление именами свойств, возвращаемыми в json из web api
В настоящее время я работаю с ASP.NET web api, где я возвращаю объект Model, например, следующий из моей операции REST:
Продукт со свойствами: Name, Id, Description, etc.....
Когда он преобразуется в объект JSON
, он выводит его с именами свойств выше.
Чтобы сократить полезную нагрузку, возвращаемую из операции web api, можно ли каким-либо образом изменить свойства в объекте JSON, например, Desc
для Description
. Я мог бы изменить объект Model, но имена свойств не имели бы смысла тогда!
Ответы
Ответ 1
Легкий способ сделать это через контракт с данными. Вот статья, но в основном это включает в себя две аннотации вашей модели. Он также позволяет игнорировать все, что вы не хотите сериализовать.
[DataContract]
public class Foo { //Your model class
[DataMember(Name="bar-none")] //This also allows you to use chars like '-'
public string bar {get; set;}
[IgnoreDataMember] //Don't serialize this one
public List<string> fuzz { get; set;}
}
Ответ 2
Вы также можете рассмотреть возможность использования http://automapper.org/ на стороне asp.net для сопоставления ваших полных объектов с более легкими. Может быть слишком много для одного или двух небольших объектов, но если у вас есть куча, вы можете сэкономить некоторое время (бесплатный и открытый исходный код для загрузки).