【发布时间】:2016-05-12 14:55:58
【问题描述】:
我正在尝试使用基于此示例https://www.datatables.net/examples/ajax/objects.html 的 JSON 响应将数据添加到 datatables.net 数据表的示例。
我正在使用 AJAX 调用从数据库中获取 JSON 响应。
我正在获取数据,然后按照以下代码使用 NewtonSoft JSON.Net 将数据表转换为 JSON 数组
string jsonResult = null;
jsonResult = Newtonsoft.Json.JsonConvert.SerializeObject(dt);
jsonResult = jsonResult.Replace("[{", "{\"data\" :[{").Replace("}]", "}]}");
return jsonResult;
根据下一个代码 sn-p,从一个单独的 javascript 文件中的 AJAX 调用成功调用它
$.ajax({
type: "POST",
url: "TeamChecks.aspx/GetDataTables",
data: JSON.stringify(params),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
console.log(data.d);
populateTable(data.d, tableId);
},
error: function (data) {
console.log(data);
}
}
然后将返回的值传递给一个函数,该函数应该根据下一组代码将数据相应地格式化输入数据表
function populateTable(json, tableId) {
try {
var table = $('#table_' + tableId).DataTable({
"processing": true,
"serverSide": true,
"ajax": json,
"columns:": [
{ "data": "CaseHandlerStaffNumber" },
{ "data": "RiskProfileText" },
{ "data": "AssignedCheckerStaffNumber" },
{ "data": "FeedbackUserStaffNumber" },
{ "data": "ComplaintRef" },
{ "data": "ChildComplaintRef" },
{ "data": "CaseTypeText" },
{ "data": "CheckGrade" }
]
});
} catch (e) {
}
}
我遇到的问题与jquery datatables Ajax-Error / http://datatables.net/tn/7 这里的问题类似,但是,我已经尝试过这个用户解决方案并且遇到了同样的问题。
我已按照https://www.datatables.net/manual/tech-notes/7 此处详述的所有推荐步骤进行操作,但没有发现与此相关的回复有任何问题。
如果有人能帮助我解决这个问题,我将不胜感激,因为我目前无法解决这个问题
谢谢
西蒙
【问题讨论】:
-
1) asp.net 返回什么 JSON? 2)您确定在返回 JSON 时没有对 JSON 进行双重序列化吗?请参阅ASP.NET web services mistake: manual JSON serialization 或ASP.NET WebMethod Returns JSON wrapped in quotes 或JSON.NET Parser seems to be double serializing my objects。
-
返回的 JSON 是否正确已在 JSONLint 中从 Newtonsoft JSON.Net 创建的内容以及当它进入 JQuery 时得到验证,所以我认为它不会进行双重序列化,但会检查
-
运气好能解决这个问题吗?
标签: javascript jquery json ajax datatables