Web API 2-返回JSON,不包括false属性

Web API 2-返回JSON,不包括false属性,json,asp.net-web-api,Json,Asp.net Web Api,当REST请求发出时返回的JSON除了任何bool属性(如果为false)都可以正常工作,JSON中不会包含该属性(通过Fiddler验证)。我试过: [DataMember(IsRequired = true)] public bool success { get; set; } 但它仍然没有归还 有什么建议吗?我喜欢它不返回任何空值,它只是布尔值,我希望总是返回 WebApiConfig.cs: public static class WebApiConfig {

当REST请求发出时返回的JSON除了任何bool属性(如果为false)都可以正常工作,JSON中不会包含该属性(通过Fiddler验证)。我试过:

[DataMember(IsRequired = true)]
        public bool success { get; set; }
但它仍然没有归还

有什么建议吗?我喜欢它不返回任何空值,它只是布尔值,我希望总是返回

WebApiConfig.cs:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {

        config.MapHttpAttributeRoutes();

        config.Formatters.XmlFormatter.UseXmlSerializer = true;
        config.Formatters.JsonFormatter.SerializerSettings.DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.IgnoreAndPopulate;
        config.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
    }
}
DatasourceController.cs:

public class DatasourceController : ApiController
{

    [HttpGet("datasource/metadata/{datasource}")]
    public MetaDataInfo GetDatasourceSchema(string datasource, string node = "")
    {
        DocumentInfo docInfo = DocumentData.GetDocInfo("dave");
        return MetaDataFactory.GetMetaDataInfo(docInfo, datasource, node);
    }
}

我认为,通过将
[DefaultValue(false)]
属性置于
success
变量和其他bool变量之上,您应该会得到所需的结果

您已将
DefaultValueHandling
设置为
Newtonsoft.Json.DefaultValueHandling.IgnoreAndPopulate
。从文档中,我们可以看到:

在序列化对象时忽略成员值与成员默认值相同的成员,并在反序列化时将成员设置为其默认值


正如我所读到的,这意味着在序列化过程中,假布尔值应该消失。但是,只要它有一个默认值,当您反序列化时,它将再次出现在JSON中。

我正在寻找相同的信息。 结果表明,您可以使用以下方法创建该属性:

[JsonProperty(DefaultValueHandling = DefaultValueHandling.Include)]
我已经在ASP.NET Core 1 RC2上进行了测试。
这是MVC 6。

你能发布你的HttpConfiguration和整个控制器/模型吗?按要求更新-谢谢我试过(很确定我以前试过),但没有成功。IgnoreAndPopulate似乎覆盖了所有内容。我把它改成了包含,这确实比我想要的要多一些,但不是一吨。