С наступающим WCF Web API, есть ли способ управления выходом JSON?Есть ли способ управлять форматированием JSON с помощью веб-API WCF?
Я хотел бы изменить корпус и, возможно, подавить, что некоторые свойства включены, когда класс сериализуется.
В качестве примера, рассмотрим это очень просто класс:
[XmlRoot("catalog", Namespace = "http://api.247e.com/catalog/2012")]
public class Catalog
{
[XmlArray(ElementName = "link-templates")]
public LinkTemplate[] LinkTemplates { get; set; }
}
Как вы можете видеть, я добавил различные XML атрибуты к ней для того, чтобы контролировать, как это сериализовать в XML. Могу ли я сделать то же (или что-то еще) для JSON?
Для справки, вот пример вывода в формате XML:
<catalog xmlns="http://api.247e.com/catalog/2012"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<link-templates>
<link-template href="http://localhost:9000/search/?criterion={criterion}"
rel="http://docs.247e.com/rels/search"/>
</link-templates>
</catalog>
Для JSON, эквивалентный результат:
{
"LinkTemplates":
[
{
"Href":"http:\/\/localhost:9000\/search\/?criterion={criterion}",
"Rel":"http:\/\/docs.247e.com\/rels\/search"
}
]
}
Однако, я хотел бы изменить корпус свойств , поэтому я бы предпочел бы что-то вроде этого:
{
"linkTemplates":
[
{
"href":"http:\/\/localhost:9000\/search\/?criterion={criterion}",
"rel":"http:\/\/docs.247e.com\/rels\/search"
}
]
}
Способ удаления определенных свойств класса также будет b Очень приятно.