【发布时间】:2022-10-05 16:13:18
【问题描述】:
我正在为员工管理创建 .net core web api 应用程序,并且我已经使用控制器编写了 api。 我想通过 id 方法返回 json 对象而不是数组中的数据。
我的代码如下所示:
[HttpGet(\"{id}\")]
public JsonResult Get(int id)
{
string query = @\"select EmployeeId,EmployeeFirstName,EmployeeLastName,EmployeeEmail,EmployeeGender,(select DepartmentName from Department where DepartmentId =Employee.Emp_DepartmentId) as DepartmentName,(select DesignationName from Designation where DesignationId=Employee.Emp_DesignationId) as DesignationName,EmployeeDob from Employee where EmployeeId = @EmployeeId \";
DataTable table = new DataTable();
string sqlDataSource = _configuration.GetConnectionString(\"Dbconn\");
SqlDataReader myReader;
using (SqlConnection myCon = new SqlConnection(sqlDataSource))
{
myCon.Open();
using (SqlCommand myCommand = new SqlCommand(query, myCon))
{
myCommand.Parameters.AddWithValue(\"@EmployeeId\", id);
myReader = myCommand.ExecuteReader();
table.Load(myReader);
myReader.Close();
myCon.Close();
}
}
return new JsonResult(table);
}
它的输出如下:
[
{
\"EmployeeId\": 1,
\"EmployeeFirstName\": \"abcd\",
\"EmployeeLastName\": \"abcd\",
\"EmployeeEmail\": \"abcd@abcd.com\",
\"EmployeeGender\": \"abcd\",
\"EmployeeDoj\": \"1995-01-01T00:00:00\",
\"DepartmentName\": \"abcd\",
\"DesignationName\": \"abcd\",
\"EmployeeDob\": \"1995-01-01T00:00:00\"
}
]
但我想要这样的输出:
{
\"EmployeeId\": 1,
\"EmployeeFirstName\": \"abcd\",
\"EmployeeLastName\": \"abcd\",
\"EmployeeEmail\": \"abcd@abcd.com\",
\"EmployeeGender\": \"abcd\",
\"EmployeeDoj\": \"1995-01-01T00:00:00\",
\"DepartmentName\": \"abcd\",
\"DesignationName\": \"abcd\",
\"EmployeeDob\": \"1995-01-01T00:00:00\"
}
-
使用
DataTables 可以做到这一点。最好将数据读入一个对象并返回它。可能使用 ORM,或者只是手动映射数据。 -
返回表的第一行 (DataRow)。我最近使用过 DataSets/DataTables 和 JSON Web 服务,但我猜它应该可以工作(我已经有大约十年没有使用过 DataSets/DataTables 了。你会更喜欢真正的 ORM
标签: c# json .net asp.net-core-webapi