Wyklucz właściwość z serializacji json w ApiController
Próbuję wykluczyć właściwości z serializacji do JSON w web ApiControllers. Sprawdziłem następujące 2 scenariusze pracy.
Włączyłem następujące atrybuty do właściwości, które chcę wykluczyć.
<code>[System.Web.Script.Serialization.ScriptIgnore] [System.Xml.Serialization.XmlIgnore] </code>
Jeśli ręcznie serializuję mój obiekt za pomocą JavaScriptSerializer, właściwość jest wykluczona. Ponadto, jeśli przeglądam serializowane dane wyjściowe XML z web ApiController, właściwość jest wykluczana. Problem polega na tym, że serializowany JSON za pośrednictwem internetowego ApiController nadal zawiera właściwość. Czy istnieje inny atrybut, którego mogę użyć, aby wykluczyć właściwość z serializacji JSON?
AKTUALIZACJA:
Zdałem sobie sprawę, że wszystkie moje testy były w dużo bardziej złożonym projekcie i że nie próbowałem tego w odizolowanym środowisku. Zrobiłem to i wciąż uzyskuję te same wyniki. Oto przykład kodu, który zawodzi.
<code>public class Person { public string FirstName { get; set; } [System.Web.Script.Serialization.ScriptIgnore] [System.Xml.Serialization.XmlIgnore] public string LastName { get; set; } } public class PeopleController : ApiController { public IEnumerable<Person> Get() { return new[] { new Person{FirstName = "John", LastName = "Doe"}, new Person{FirstName = "Jane", LastName = "Doe"} }; } } </code>
Oto generowane wyjście.
JSON:
<code>[ { "FirstName" : "John", "LastName" : "Doe" }, { "FirstName" : "Jane", "LastName" : "Doe" } ] </code>
XML:
<code><?xml version="1.0" encoding="utf-8"?> <ArrayOfPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Person> <FirstName>John</FirstName> </Person> <Person> <FirstName>Jane</FirstName> </Person> </ArrayOfPerson> </code>