bre*_*sey 2 c# asp.net-mvc json nullable short
我是HTTP将JSON发布到ASP.NET MVC 4 Web服务.JSON被反序列化为包含Nullable <Int16>属性(又名"short?")的对象.当JSON发布时将此属性的值包装在引号中时,该值将成功反序列化.如果它没有用引号括起来,则该值始终为null.
正在反序列化的C#对象:
Class MyClass {
short? MyLittleNumber { get;set; }
}
Run Code Online (Sandbox Code Playgroud)
如果JSON是这样的:
{MyLittleNumber:"5"}
Run Code Online (Sandbox Code Playgroud)
它有效,但如果是这样的话:
{MyLittleNumber:5}
Run Code Online (Sandbox Code Playgroud)
它无法读取值并默认为NULL.
解决方案:我将short(Int16)更改为int(Int32),现在它将读取该值,无论它是否用引号括起来.
在理解这种区别之前,我昨天花了大约3个小时来解决这个问题,所以我想在这里找到答案.我相信它是由ASP.NET MVC类将JSON反序列化为类的方式的一些缺点引起的.
关于可以为空的小数/双精度,这里有一个相关的问题. 将可空的十进制数从json传递到ASP.NET MVC Controller Action?
归档时间: |
|
查看次数: |
895 次 |
最近记录: |