【发布时间】:2021-10-05 07:47:03
【问题描述】:
我正在尝试学习 ASP.NET Web API。我设计了类似的代码,当请求(GET)到达控制器时,SP被触发,数据从数据集转换为数据表并以JSON格式返回。问题是当我尝试返回 JSON 时,响应变为空。
C#代码:
[HttpGet]
public IActionResult GetTodoItem()
{
try
{
DbConnect dbConnect = new DbConnect();
DataSet ds = dbConnect.ExecuteSP2("View_Contacts");
string results = dbConnect.DataTableToJSONWithJSONNet(ds.Tables[0]);
dynamic json1 = JsonConvert.DeserializeObject(results);
return this.Ok(json1);
}
catch (Exception ex)
{
return StatusCode(500,ex.Message);
}
}
回应:
需要示例 JSON:
[
{
"Contact": 6860,
"Title_Movie": "Ayan",
"Email_": "",
"PhoneNumber": null,
"Job": null,
"Fax": null,
"Picture_maxi": "",
"Type": 2,
"Company_Id": null,
"School_Id": null,
"Theatre_Id": null,
"FirstName": "Stuart",
"LastName": "",
"PreferredName": null,
"Status": 9,
"Meter_Id": null,
"Car_Id": null,
"Business_Id": null
}]
我怎样才能返回这个示例 json 。谢谢
【问题讨论】:
-
Empty 表示空字符串。为此,
json1本身必须为空。 实际响应是什么?json1的 实际 值是多少?而且,如果您查询数据库,为什么要尝试使用DataTableToJSONWithJSONNet将结果转换为 JSON,而不是让 ASP.NET Core 来做呢? -
如果您使用 Dapper 或 EF Core 之类的库来检索具有所需属性的对象,则可以直接返回它们。 ASP.NET Core 会将每个对象映射到一个 JSON 对象,每个公共属性映射到一个属性。
-
可能是空的,因为你的查询结果是空的。在尝试任何其他转换之前,您是否尝试过记录 SP 调用的结果?
-
我只需要将 ds.Tables[0] 作为 Json 返回。我得到的响应是 [ [ [ [] ], [ [] ]
-
结果不为空
标签: c# asp.net-core asp.net-core-webapi