javascript - 从 javascript 发送 DataTables 中的 JSON 对象

标签 javascript jquery json datatable datatables

我尝试从 JSON 对象填充数据表,但收到以下错误:

DataTables warning: table id=filteredAlertsTable - Requested unknown parameter 'messageId' for row 0. For more information about this error, please see http://datatables.net/tn/4

这是我的代码:

var dataSet = '${data}';
$('#filteredAlertsTable').dataTable( {
        "bProcessing": true,
        "aaData": dataSet,
        "aoColumns": [
                      { "mData": "messageId" },
                      { "mData": "host" },
                      { "mData": "creationTime" },
                      { "mData": "resolvedTime" },
                      { "mData": "severity" },
                      { "mData": "alertText" }
        ]
    } );

我从 javascript 变量获取dataSet,我尝试传递以下内容,

[{
    "severity": "Severity",
    "creationTime": "CreationTime",
    "resolvedTime": "ResolvedTime",
    "appName": "AppName",
    "host": "Host",
    "messageId": "MessageId",
    "alertText": "AlertText"
},
{
    "severity": "Severity1",
    "creationTime": "CreationTime1",
    "resolvedTime": "ResolvedTime1",
    "appName": "AppName1",
    "host": "Host1",
    "messageId": "MessageId1",
    "alertText": "AlertText1"
}]

{
    "mData": [{
        "severity": "Severity",
        "creationTime": "CreationTime",
        "resolvedTime": "ResolvedTime",
        "appName": "AppName",
        "host": "Host",
        "messageId": "MessageId",
        "alertText": "AlertText"
    },
    {
        "severity": "Severity1",
        "creationTime": "CreationTime1",
        "resolvedTime": "ResolvedTime1",
        "appName": "AppName1",
        "host": "Host1",
        "messageId": "MessageId1",
        "alertText": "AlertText1"
    }]
}

我已经想到了this问题,但我仍然不知道出了什么问题

这是我的 HTML 代码。

<table id="filteredAlertsTable"
    class="table table-striped table-bordered ">
    <thead>
        <tr>
            <th>Message Id</th>
            <th>Host</th>
            <th>Creation Time</th>
            <th>Resolved Time</th>
            <th>Severity</th>
            <th>Alert Text</th>
        </tr>
    </thead>
    <tbody>
    </tbody>
</table>

最佳答案

这是因为dataSet是一个字符串。很可能是由 '${data}' 引起的,因此 dataTable 看起来像这样:

var dataSet = '[{ "severity": "Severity", "creationTime": "CreationTime", "resolvedTime": "ResolvedTime", "appName": "AppName", "host": "Host", "messageId": "MessageId",    "alertText": "AlertText"},{    "severity": "Severity1",    "creationTime": "CreationTime1", "resolvedTime": "ResolvedTime1", "appName": "AppName1", "host": "Host1", "messageId": "MessageId1", "alertText": "AlertText1"}]';

作为 JSON,它可以立即工作 -> http://jsfiddle.net/q78tu48q/

因此请确保您的字符串实际上采用 JSON 格式:

$('#filteredAlertsTable').dataTable( {
        "bProcessing": true,
        "aaData": JSON.parse(dataSet),
        "aoColumns": [
                      { "mData": "messageId" },
                      { "mData": "host" },
                      { "mData": "creationTime" },
                      { "mData": "resolvedTime" },
                      { "mData": "severity" },
                      { "mData": "alertText" }
        ]
    } );

演示 -> http://jsfiddle.net/u76bLpa3/

关于javascript - 从 javascript 发送 DataTables 中的 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30256610/

相关文章:

javascript - 未捕获类型错误 : Cannot read property 'uid' of undefined(anonymous function) when trying to bind data to Kendo Grid

python - Python Properties类的Json序列化

javascript - 如何在 JavaScript 中将属性值与 JSON 值匹配?

javascript - 如何使用js从json中提取图片并显示在html标签中

javascript - 根据提供的 JQuery Snippet 修改 HTML

javascript - 在不调整图像大小的情况下更改图像的可点击区域

jquery - 当在 DIV 中使用鼠标滚轮时,纳米滚动条不起作用

jquery - 找到修改了 html 元素的 jquery 函数

javascript - 在 Javascript 中从字符串中提取 URL

Javascript 将图像放置在另一个图像之上