我试图将财产从序列化到ApiControllers的JSON。 我已经核实了以下两个假设情景的工作。
我已将以下属性列入我希望排除的财产。
[System.Web.Script.Serialization.ScriptIgnore]
[System.Xml.Serialization.XmlIgnore]
如果我使用JavaSerializer对我的物体进行人工分类,则该财产被排除在外。 而且,如果我从ApiController网站看到XML系列产出,则该财产被排除在外。 问题在于,通过ApiController网站编造的JSON仍然含有这些财产。 是否有另一个属性,即我可以用来将财产排除在JSON序列化之外?
<><>UPDATE:
我已认识到我的所有测试都是在一个更加复杂的项目中进行的,我没有在孤立的环境中尝试过。 我是这样做的,而且仍在取得同样的结果。 这里是一些法典失败的例子。
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"}
};
}
}
这里是产生的产出。
www.un.org/chinese/ecosoc
[
{
"FirstName" : "John",
"LastName" : "Doe"
},
{
"FirstName" : "Jane",
"LastName" : "Doe"
}
]
<>XML:
<?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>