c# - 将字典列表序列化为可接受的 DataTable Ajax 对象

标签 c# jquery json ajax datatables

我有一个 Web 应用程序,我正在其中将一些数据检索到 Bootstrap 表中,我现在想做的是使用 jQuery DataTable而不是当前的,因为它有太多有用的功能。

目前我正在使用 OOP 方法从服务器端检索数据,其中类对象表示特定表中的数据行,并且该对象包含一个存储列名称和值的字典。

我现在正在做的是检索这些类对象并将每个对象的每个字典附加到 List<Item> 中。然后使用 JavaScriptSerializer 序列化此列表对象,此对象返回以下 JSON格式:

[
   {
   "slno":"2",
    "status_message":"Lights still flashing", 
    "crm_services_id":"1", "subject_id":"Lights are flashing",
    "severity_id":"5", 
    "user_id":"husain.alhamali", 
    "status_id":"1"
    },
    {
    "slno":"3", 
    "status_message":"lights working fine",    
    "crm_services_id":"2", 
    "subject_id":"Lights are flashing", 
    "severity_id":"3", 
    "user_id":"husain.alhamali", 
    "status_id":"2"
    }
]

当我尝试使用这个对象来填充我的 DataTable AJAX 时我有一个错误说:

Invalid JSON response

我看到了一些有效 JSON 的例子DataTable 可接受的响应如下:

{
"data": [
[
  "Tiger Nixon",
  "System Architect",
  "Edinburgh",
  "5421",
  "2011/04/25",
  "$320,800"
],
[
  "Garrett Winters",
  "Accountant",
  "Tokyo",
  "8422",
  "2011/07/25",
  "$170,750"
]
}

现在我的问题是有没有任何工具或插件可以重新格式化我的 JSON将字符串转换为可接受的格式,如上面的格式?

最佳答案

使用这个 HTML:

<table id="example"></table>

此 JS 将创建一个表:

var data = [{
  "slno": "2",
  "status_message": "Lights still flashing",
  "crm_services_id": "1",
  "subject_id": "Lights are flashing",
  "severity_id": "5",
  "user_id": "husain.alhamali",
  "status_id": "1"
}, {
  "slno": "3",
  "status_message": "lights working fine",
  "crm_services_id": "2",
  "subject_id": "Lights are flashing",
  "severity_id": "3",
  "user_id": "husain.alhamali",
  "status_id": "2"
}];

function getColumns(){
  for(var i = 0; i < data.length; i++){
    let columnsArray = [];
    var keys = Object.keys(data[i]);
    for(k in Object.keys(data[i])){
      if(data[i].hasOwnProperty(keys[k])){
        columnsArray.push({
            "data":keys[k]
        });
      }
    }
    return columnsArray;
  }
}
$(document).ready(function() {
  var table = $('#example').DataTable({
    "columns": getColumns(),
    "data": data
  });
});

工作 example .希望对您有所帮助。

关于c# - 将字典列表序列化为可接受的 DataTable Ajax 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40154002/

相关文章:

c# - asp net with visual studio 代码恢复包

c# - 在 Application Insight .Net Core 2.1 中使用自定义属性记录用户名和 IP

葡萄牙语的 C# 日期时间格式

javascript - 为什么我的 JavaScript/jQuery 与子窗口的交互会引发 "permission denied"错误?

c# - 如何在 Entity Framework 中结合 inner join 和 left join

javascript - 使用无序列表的 jQuery 下拉导航

javascript - 在 AngularJS 中的选项选择上动态创建 div

php - Twitter json API 外来字符

jquery - 使用 jQuery 嵌套无序列表的对象

javascript - 如何对JSON的相似子项进行分组