json - asp web api json序列化返回私有(private)属性

标签 json serialization asp.net-web-api wsdl

我有一个 Web api Controller 类
我在从 Web api Controller 的 WSDL 生成的代理类上调用一个方法,
我返回一个在 WSDL 代理类中定义的类型的对象。

但返回的 xml/json 包含代理类的私有(private)成员

私有(private)成员是

    private string companyField;

    private string soldBPField;

    private string fromDateField;

    private string toDateField;

    private long succStatusField;

并且返回的 xml 是:
<companyField>700</companyField>
<soldBPField>999000353</soldBPField>
<fromDateField>01-01-2012</fromDateField>
<toDateField>01-01-2013</toDateField>

返回的json也类似

我更改了 global.asax 中的 xml 格式化程序,如下所示:
var xml = GlobalConfiguration.Configuration.Formatters.XmlFormatter;
xml.UseXmlSerializer = true;

这将返回的 XML 更改为:
<company>700</company>
<soldBP>999000353</soldBP>
<fromDateField>01-01-2012</fromDate>
<toDate>01-01-2013</toDate>

但返回的 json 仍然包含私有(private)变量的名称

谁能帮我解决这个问题

最佳答案

您的类型是否标记为 [Serializable] ?可序列化意味着序列化程序应该序列化所有字段 - 私有(private)或公共(public)。尝试删除 Serializable或者使用此行来阻止 JSON 格式化程序识别属性:

config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver();

关于json - asp web api json序列化返回私有(private)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17341135/

相关文章:

javascript - 将字符串转换为 JSON 对象

c - 在 C 中序列化字符串

c# - 尝试在我的 WebAPI 上调用特定的 GET 方法,但未找到 HTTP 404

c# - ReadAsAsync - 抛出异常类型是接口(interface)或抽象类,无法实例化

java - 为什么在序列化内置类型时会忽略 JsonAdapter 注解?

javascript - jQuery 数据表如果数据长度大于特定长度

python:通过网络发送列表/字典

java - 将对象的 transient 成员反序列化为非空默认使用 Kryo

c# - ASP.NET Core 1.0 Web API 中的简单 JWT 身份验证

json - CouchDB 最适合动态语言吗?