获取动态对象并使用以下代码将其转换为 Json 后:dynamic realTimeData = db.Database.DynamicSqlQuery("exec QueryRealTimeData @treeId", new SqlParameter("@treeId", treeId));int draw = Request["draw"] != null ? int.Parse(Request["draw"]) : 1;var jsonDataTemp = new { data = realTimeData, draw = draw};return Json(jsonDataTemp, JsonRequestBehavior.AllowGet);发现转换的Json格式(下面格式1)不是我需要的格式:{ "data": [{ "B01-Rtd": 10.285, "001-Rtd": 7.522, "011-Rtd": 20.903 }, { "B01-Rtd": 10.031, "001-Rtd": 7.518, "011-Rtd": 20.903 }], "draw": 1}我实际上需要将 JQuery DataTables 的数据源转换为以下格式(格式 2):[{ "COLUMNS": [ {"title": "B01-Rtd"}, {"title": "001-Rtd"}, {"title": "011-Rtd"} ], "DATA": [ ["10.285", "7.522", "20.903"], ["10.031", "7.518", "20.903"] ], "draw": 1}]请问如何转换为格式2,或者如何使用格式1的数据到DataTables数据源?注意我这个是动态生成的匿名对象,事先不知道是什么列,没有显式初始化列,需要动态生成类似两种Json格式,然后使用类似下面的JS初始化DataTables:$('#example').dataTable({ "data": dataObject[0].DATA, "columns": dataObject[0].COLUMNS});或者还有其他方法可以使用数据表显示匿名类型吗?
1 回答
30秒到达战场
TA贡献1828条经验 获得超6个赞
var dataObject = [{
"data": [{
"B01-Rtd": 10.285,
"001-Rtd": 7.522,
"011-Rtd": 20.903
}, {
"B01-Rtd": 10.031,
"001-Rtd": 7.518,
"011-Rtd": 20.903
}],
"draw": 1
}];
var data = [],
columns = [];
if (dataObject.length && dataObject[0].data.length) {
columns = Object.keys(dataObject[0].data[0]).map(x => {
return {
title: x
}
});
dataObject[0].data.forEach((item, index) => {
var values = [];
columns.forEach(x => {
values.push(item[x.title]);
});
data.push(values);
});
}
console.log(columns);
console.log(data);
//$('#example').dataTable({
// "data": data,
// "columns": columns
//});
- 1 回答
- 0 关注
- 170 浏览
添加回答
举报
0/150
提交
取消