【发布时间】:2018-10-16 11:43:38
【问题描述】:
方法:
[Route("api/vms/getpowerstatus/{vmsid}")]
[HttpGet]
public string getpowerstatus(string vmsid)
{
Result rs = new Result();
try
{
DataSet ds = new DataSet();
String timeStamp = GetTimestamp();
string q = "select vmsid, vmspowerstatus ,vmspowerdatetime from public.vmssnapshot ";
ds = vm.GetVMS(q);
rs.vmsid = vmsid;
rs.status = "success";
string json = JsonConvert.SerializeObject( ds.Tables[0] , Formatting.None);
return json;
}
catch (Exception ex)
{
}
}
回应:
"[{\"vmsid\":\"512\",\"vmspowerstatus\":null,\"vmspowerdatetime\":null},{\"vmsid\":\"VMSBhandup98\",\"vmspowerstatus\":null,\"vmspowerdatetime\":null},{\"vmsid\":\"tquwuer\",\"vmspowerstatus\":null,\"vmspowerdatetime\":null},{\"vmsid\":\"VMSBlock\",\"vmspowerstatus\":\"1\",\"vmspowerdatetime\":1539022768},{\"vmsid\":\"uu4443\",\"vmspowerstatus\":\"1\",\"vmspowerdatetime\":1534917021},{\"vmsid\":\"cms_bhandup\",\"vmspowerstatus\":\"1\",\"vmspowerdatetime\":1539022544},{\"vmsid\":\"vmsBolakk\",\"vmspowerstatus\":\"1\",\"vmspowerdatetime\":1539631400}]"
期望的响应:
[{vmsid:'512',vmspowerstatus:'test'.....}]
【问题讨论】:
-
如果您使用默认的序列化程序,只从方法中返回 ds.Tables[0] 会发生什么?
-
@MarcusHöglund 那么我必须将方法的返回类型更改为
Datatable,但我并不总是返回DataTable。例如;在捕获中,我返回一个具有两个属性 ID 和 MSG 的对象 -
你可以尝试返回类型 IHttpActionResult,然后执行“return Ok(ds.Tables[0]);”
-
您想要的响应是无效的 json 格式。响应实际上是所需的格式。
-
我知道。但是我们的客户在节点 js 中遇到了一些问题。解析字符串后,他无法访问属性: parsedvariable[0] // 给他“[”
标签: c# asp.net .net asp.net-web-api