我有这个课程,作为一个减少版本:
public class SportTableRow { public Int32 Won { get; set; } public Int32 Lost { get; set; } public Int32 Drawn { get; set; } public Int32 For { get; set; } }
当我通过WebAPI调用数据时,它看起来像这样(再次减少)……@H_301_5@
public List<SportTableRow> Get() { var options = .... var sport = .... var locationCode = ... return SportManager.GetOverallTable(sport,options,locationCode).TableRows; }
当我在调试器中检查返回的数据时,您可以看到列表中的属性…@H_301_5@
但是,当我通过提琴手打电话时,你会发现缺少一些属性……@H_301_5@
……似乎任何Int都是0,而bool是假的等等.@H_301_5@
解决方法
默认情况下,JSON序列化程序
JSON.NET设置为排除设置为默认值的属性.例如,boolean = false,int = 0,int?= null,object = null等将从生成的JSON中排除.目的是最小化带宽.
您可以通过更改设置来更改此行为:@H_301_5@
System.Web.Http .GlobalConfiguration.Configuration .Formatters .JsonFormatter .SerializerSettings .DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Include;
最好在Global.asax文件中添加此行.但请注意:这只会增加带宽而没有实际好处,特别是如果您也控制客户端@H_301_5@