从第三方系统反序列化JSON数据为对象/类格式,并从asp.net web api将数据写入SQL Server表。 当我运行以下代码时,遇到以下错误
无法将JSON集合转换为字符串
我使用System.Web.Extensions dll来反序列化JSON数据。
JSON:
{
"data":[
{
"Id":"1",
"Student":"T code",
"Grade":"Test code"
}
],
"Token":"",
"header":[
"Id",
"Student",
"Grade"
],
"Rowcount":1
}
我的模型:
public class Student
{
public string Id { get; set; }
public string Student { get; set; }
public string Grade { get; set; }
}
public class AllStudents
{
public IList<SData> data { get; set; }
}
我的控制器:
[HttpPost]
public IHttpActionResult Post(Student studentjson)
{
IList<SData> StudentList = studentjson.data;
var serializer = new JavaScriptSerializer();
Student StudentObj = serializer.Deserialize<Student>(studentjson.data.ToString());
string SQLConnectionString = ConfigurationManager.ConnectionStrings["SQLConnectionString"].ConnectionString;
using (SqlConnection conn = new SqlConnection(SQLConnectionString))
{
conn.Open();
foreach (var student in StudentObj.data)
{
if (writetotbl(conn, student))
{
Console.WriteLine("Success : " + student.Student);
}
else
{
Console.WriteLine("Error : " + student.Student);
}
}
}
}
static bool writetotbl(SqlConnection conn, studentjson StudentObj)
{
try
{
string query = @"INSERT INTO [dbo].[student] ([student]) VALUES (@student)";
using (SqlCommand cmd = new SqlCommand(query, conn))
{
cmd.Parameters.Add(new SqlParameter("@student", StudentObj.student));
cmd.ExecuteNonQuery();
}
return true;
}
catch (Exception ex)
{
return false;
}
}
SData
? - Lasse V. Karlsen