Я пытаюсь понять причину десериализации вокруг недопустимого запроса json, когда пытаюсь установить значение типа double со значениями без кавычек.На примере контроллера
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 равным нулю.Я надеялся понять, что происходит в этом случае.
Примечание: это было воссоздано с пустым проектом web.api по умолчанию и добавлением вышеуказанного контроллера.