【发布时间】:2015-05-22 10:55:27
【问题描述】:
我正在尝试将 SQL 存储过程的结果转换为 DataTable 并将其转换为 Json,以便稍后我可以将它与 Highcharts 一起使用。由于某种原因,我得到的结果格式错误:
我的控制器:
public ActionResult GetDailyOutputByHour(int machine, string dateFrom, string dateTo, string line = "All")
{
Graph g = repository.Graphs.Where(p => p.GraphID == 1).FirstOrDefault();
string result = repository.GetGraphData(g.StoredProc + " '" + line + "', " + machine + ", '" + dateFrom + "', '" + dateTo + "'");
return Content(result, "application/json");
}
存储库:
public string GetGraphData(string sp)
{
var connection = ConfigurationManager.ConnectionStrings["EFDbContext"].ConnectionString;
using (var dataAdapter = new SqlDataAdapter("exec " + sp, connection))
{
var dataTable = new DataTable();
dataAdapter.Fill(dataTable);
dataAdapter.FillSchema(dataTable, SchemaType.Mapped);
string json = JsonConvert.SerializeObject(dataTable, Formatting.Indented);
return json;
}
}
我得到的结果:
"[\r\n {\r\n \"Hour\": 7,\r\n \"Input\": 4614,\r\n \"Output\": 2952,\r\n \"InTarget\": 3033,\r\n \"OutTarget\": 2533\r\n },\r\n {\r\n \"Hour\": 8,\r\n \"Input\": 3729,\r\n \"Output\": 2940,\r\n \"InTarget\": 3033,\r\n \"OutTarget\": 2533\r\n },\r\n {\r\n \"Hour\": 9,\r\n \"Input\": 4158,\r\n \"Output\": 3798,\r\n \"InTarget\": 3033,\r\n \"OutTarget\": 2533\r\n },\r\n {\r\n \"Hour\": 10,\r\n \"Input\": 5310,\r\n \"Output\": 4023,\r\n \"InTarget\": 3033,\r\n \"OutTarget\": 2533\r\n },\r\n {\r\n \"Hour\": 11,\r\n \"Input\": 1344,\r\n \"Output\": 2547,\r\n \"InTarget\": 3033,\r\n \"OutTarget\": 2533\r\n }\r\n]"
我做错了什么?
【问题讨论】:
标签: c# json asp.net-mvc highcharts json.net