我的学生课堂上配备了StudentPhone。当我从Student类中删除StudentPhones属性时,与Postman一起发布时效果很好。但是,当添加StudentPhones属性时,邮递员会给我这个错误:
{ “学生电话”:[ “无法将当前JSON数组(例如[1,2,3])反序列化为类型'DataAccess.StudentPhone',因为该类型需要JSON对象(例如{\“ name \”:\“ value \”})才能正确反序列化。\ r \ n要解决此错误,请将JSON更改为JSON对象(例如{\“ name \”:\“ value \”}),或将反序列化类型更改为数组或实现集合接口的类型(例如ICollection,IList),例如可以从JSON数组反序列化的List。还可以将JsonArrayAttribute添加到该类型中,以强制从JSON数组反序列化。\ r \ nPath'StudentPhones',第4行,位置23。” ] }
public class Student
{
public string StudentName { get; set; }
public string StudentSurname { get; set; }
public StudentPhone StudentPhones { get; set; }
}
public class StudentPhone
{
public int PhoneType{ get; set; }
public string PhoneNumber { get; set; }
}
public async Task<ServiceResult> SaveStudent([FromBody]Student student)
{
}
如何发布此json? (我实际使用的是角度6,仅以邮递员为例。)
我的json
{
"studentName": "test",
"studentSurname": "test",
"studentPhones": [
{
"phoneType": 1,
"phoneNumber ": "111111111"
},
{
"phoneType": 2,
"phoneNumber ": "2222222222"
}
],
}
答案 0 :(得分:3)
您的JSON中有一系列电话,因此模型中应该有public StudentPhone StudentPhones { get; set; }
public List<StudentPhone> StudentPhones { get; set; }