Я написал веб-API в ASP. NET Core, для которого мне нужно передать 2 параметра; один из них представляет собой строку с оценкой, другой - список типов studentInfo, как показано здесь:
[HttpPost]
[Route("UpdateActiveStudents")]
public Response UpdateActiveStudents(string grade, [FromBody] List<StudentsInfo> lststudents)
{
try
{
// My Logic
}
catch(Exception ex)
{
resp.flag = false;
resp.message = ex.Message;
}
return resp;
}
Для тестирования этого API я использовал AR C (Advanced Rest Client). Я передал данные в запросе POST
следующим образом:
{
"grade": "B",
"lststudents": [
{ "StudentName": "abcdef", "RollNo": "user1"},
{ "StudentName": "abcdef", "RollNo": "user1"}
]
}
Это вызывает ошибку состояния HTTP 400 со следующим сообщением:
Невозможно десериализовать текущий JSON объект (например, {"name": "value"}) в тип 'System.Collections.Generi c .List`1 [SchoolHub.Model.StudentList]', потому что для этого типа требуется массив JSON (например, [1 , 2,3]) для правильной десериализации. Чтобы исправить эту ошибку, либо измените JSON на массив JSON (например, [1,2,3]), либо измените десериализованный тип так, чтобы он был нормальным. NET типом (например, не примитивным типом, таким как целое число , а не тип коллекции, такой как массив или список), который можно десериализовать из объекта JSON. JsonObjectAttribute также можно добавить к типу, чтобы заставить его десериализоваться из объекта JSON. Путь 'lstudents', строка 2, позиция 13.
Мне не известно об этом исключении.