Неправильно десериализуется integer в Json.Net

У меня есть простое тело запроса, состоящее из следующего json:

{
   "code": 11,
   "name": "abc"
}

Во время отладки при обработке POST-запроса в качестве аргумента поступает правильная строка, однако после использования JsonConvert.DeserializeObject<FacultyJson>(body.ToString()) поле code класса FacultyJson становится равным 0, при этом при десериализации без указания типа поле code становится равным вообще null. Код метода:

public IActionResult AddFaculty(JsonElement body)
{
   var debug = body.ToString();
   FacultyJson faculty = JsonConvert.DeserializeObject<FacultyJson>(body.ToString());

   DatabaseWorker.AddFaculty(faculty.Name, faculty.Code);
   return Ok();
}

Вот так выглядит FacultyJson (сам он вложен в другой класс):

private class FacultyJson
{
   [JsonProperty]
   public string Name { get; set; }
   [JsonProperty]
   public int Code { get; set; }
}

Как видно, перепробовал все что мог, и публичные сеттеры (хотя изначально просто поля были), и атрибуты JsonProperty. Кто-нибудь знает, в чем может быть проблема?


Ответы (1 шт):

Автор решения: Илья Плотников

В итоге исправилось изменением названий полей в FacultyJson и соответствующем анонимном типе внутри angular с name и code на facultyName и facultyCode:

private class FacultyJson
{
   [JsonProperty]
   public string FacultyName { get; set; }
   [JsonProperty]
   public int FacultyCode { get; set; }
}
→ Ссылка