English 中文(简体)
ApiController的json序列化不包括财产
原标题:Exclude property from json serialization in ApiController

我试图将财产从序列化到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>
最佳回答

了解JSON的序列化正在网上预报中发生变化。

在星号释放中,网络信息预报组织利用数据分析仪将JSON序列化。 然而,这一改动已经改变;最新版本json.net。 否则,尽管你可以推翻这一点,而是使用数据ContractJsonSerializer。

由于数据冲突,你可以使用[数据查询]特性控制序列化。 我不熟悉json.net,因此我不知道如何控制序列化。

问题回答

您可使用<条码>[JsonIgnore] 具体针对特定人群的特性;或您可使用<条码>[DataContract]和[DataMember],用于与初专干事格式和(XML)制作的固定装置<条码>。

本条对缺省媒体类型格式提供了更详细的信息:

JsonIgnore修改了整个类别的定义。 如果你想要控制具体的行动/要求,你可以,以这种方式

Looks like this covers what I need. It shows you you can swap out formatters. It even includes an example formatter that uses the JavaScriptSerializer which is what I need.

http://wildermuth.com/2007/2/22/WebAPI_for_the_MVC_Guy





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Transaction handling with TransactionScope

I am implementing Transaction using TransactionScope with the help this MSDN article http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx I just want to confirm that is ...

System.Web.Mvc.Controller Initialize

i have the following base controller... public class BaseController : Controller { protected override void Initialize(System.Web.Routing.RequestContext requestContext) { if (...

Microsoft.Contracts namespace

For what it is necessary Microsoft.Contracts namespace in asp.net? I mean, in what cases I could write using Microsoft.Contracts;?

Separator line in ASP.NET

I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!

热门标签