Asp.Net Web Api 2 Json反序列化解析未引用的字符

时间:2018-11-27 00:02:45

标签: c# json asp.net-web-api2

当尝试使用无引号的值设置double时,我试图了解围绕无效json请求的反序列化问题。给定示例控制器

public class TestController : ApiController
{
    public IHttpActionResult Post([FromBody] Foo foo)
    {
        return Ok();
    }
}

public class Foo    
{
    public string StringOne { get; set; }

    public double Bah { get; set; }

    public string StringTwo { get; set; }
}

带有JSON对象的有效案例,例如:

{
   "StringOne": "Lorem",
   "Bah" : 1.2,
   "StringTwo" : "Ipsum" 
}

将按照您的预期构建foo对象,并正确设置所有三个值。以下无效JSON将导致foo设置为null。同样,这似乎是预期的

{
   "StringOne": "Lorem",
   "Bah" : ThisIsntRight,
   "StringTwo" : "Ipsum" 
}

但是,当使用以下JSON

{
   "StringOne": "Lorem",
   "Bah" : Q,
   "StringTwo" : "Ipsum" 
}

foo被反序列化,Bah的值为0。我希望它的行为类似于第二个示例,并将foo设置为null。我希望了解这种情况下的情况。

注意:这是使用默认的空web.api项目并添加上面的Controller重新创建的。

0 个答案:

没有答案
相关问题