C# 如何使用Web API将多个数据项插入SQL?
我有这样一个代码:C# 如何使用Web API将多个数据项插入SQL?,c#,json,asp.net-web-api,sql-insert,C#,Json,Asp.net Web Api,Sql Insert,我有这样一个代码: public IHttpActionResult Post(CUSTOMER [] newCustomer) { try { foreach (CUSTOMER item in newCustomer) { var AddedCust = db.CUSTOMERs.Add(item); } int insertedRecords = db.SaveChanges();
public IHttpActionResult Post(CUSTOMER [] newCustomer)
{
try
{
foreach (CUSTOMER item in newCustomer)
{
var AddedCust = db.CUSTOMERs.Add(item);
}
int insertedRecords = db.SaveChanges();
return Ok(insertedRecords);
}
catch (Exception)
{
return BadRequest(ModelState);
}
}
对于Postman,我试图发布多条记录,但我遇到了一个例外:
{
"NAME": "test1",
"SURNAME": "Aleksandrova",
"BIRTHPLACE": "Minsk",
"GENDER": "F",
"IDENTITYNO": "AA75 857445",
"IDENTITYPINCODE": 2552,
"BIRTHDATE": "1970-06-19T00:00:00"
}
{
"NAME": "test2",
"SURNAME": "Aleksat34t34ndrova",
"BIRTHPLACE": "Minsk",
"GENDER": "F",
"IDENTITYNO": "AA75 857445",
"IDENTITYPINCODE": 2552,
"BIRTHDATE": "1970-06-19T00:00:00"
}
{
"NAME": "test3",
"SURNAME": "Aleksandrova",
"BIRTHPLACE": "Minsk",
"GENDER": "F",
"IDENTITYNO": "AA75 857445",
"IDENTITYPINCODE": 2552,
"BIRTHDATE": "1970-06-19T00:00:00"
}
错误:
“无法将当前JSON对象(例如{“name\”:\“value\”})反序列化为类型‘First\u API.Models.CUSTOMER[]”,因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化。\r\n若要修复此错误,请将JSON更改为JSON数组(例如[1,2,3]),或将反序列化类型更改为正常的.NET类型。”(例如,不是integer之类的基元类型,也不是数组或列表之类的集合类型),可以从JSON对象反序列化
如何解决此问题?您的json正文无效,json数组应包含在
[]
(方括号)中,并且每条记录应以,
(逗号)分隔
尝试使用以下json发送api请求
[{
"NAME": "test1",
"SURNAME": "Aleksandrova",
"BIRTHPLACE": "Minsk",
"GENDER": "F",
"IDENTITYNO": "AA75 857445",
"IDENTITYPINCODE": 2552,
"BIRTHDATE": "1970-06-19T00:00:00"
},
{
"NAME": "test2",
"SURNAME": "Aleksat34t34ndrova",
"BIRTHPLACE": "Minsk",
"GENDER": "F",
"IDENTITYNO": "AA75 857445",
"IDENTITYPINCODE": 2552,
"BIRTHDATE": "1970-06-19T00:00:00"
},
{
"NAME": "test3",
"SURNAME": "Aleksandrova",
"BIRTHPLACE": "Minsk",
"GENDER": "F",
"IDENTITYNO": "AA75 857445",
"IDENTITYPINCODE": 2552,
"BIRTHDATE": "1970-06-19T00:00:00"
}]
试一试
为了完整起见,您可以添加一个解释,说明为什么您已经像以前一样格式化了JSON(请参见Prassad的回答)。“试试看。”"不是答案。@CodeCaster您总是可以做得更好请阅读。这个错误已经被问过了,并且已经回答了数百次。您试过什么了?@CodeCaster我找不到答案,这就是为什么我问我如何才能只返回添加的数据本身?我知道。例如,我通过写入一条记录来获取插入记录的数量e return ok(值),但这个值在循环中,我如何返回它?@AlishSafarli,您发布的错误是不言自明的,它在stackoverflow上解决过,这可能是您的问题得到-1的原因
[
{
"NAME": "test1",
"SURNAME": "Aleksandrova",
"BIRTHPLACE": "Minsk",
"GENDER": "F",
"IDENTITYNO": "AA75 857445",
"IDENTITYPINCODE": 2552,
"BIRTHDATE": "1970-06-19T00:00:00"
},
{
"NAME": "test2",
"SURNAME": "Aleksat34t34ndrova",
"BIRTHPLACE": "Minsk",
"GENDER": "F",
"IDENTITYNO": "AA75 857445",
"IDENTITYPINCODE": 2552,
"BIRTHDATE": "1970-06-19T00:00:00"
},
{
"NAME": "test3",
"SURNAME": "Aleksandrova",
"BIRTHPLACE": "Minsk",
"GENDER": "F",
"IDENTITYNO": "AA75 857445",
"IDENTITYPINCODE": 2552,
"BIRTHDATE": "1970-06-19T00:00:00"
}
]