【问题标题】:How to use array column name inside of object from json return in datatable ajax?如何在数据表ajax中的json返回对象中使用数组列名?
【发布时间】:2020-07-15 13:54:19
【问题描述】:

如果数据是对象内的数组,我试图弄清楚如何写数据的列名

如果 json 返回看起来像

"data" : {
            "name" : "aaa"
    }

我将使用此代码

        ajax : {
            url : url,
            type : 'GET'
        },
        "scrollX" : true,
        destroy : true,
        columns : [ {
            data : 'name'
        }, ]

但是如果 json 返回看起来像这样呢

"data" : {
            "detail" : [
              {
                  "name" : "abc"
              }
            ]
}

我尝试在下面编写此代码,但它不起作用,有人可以帮我解决这个问题

 ajax : {
                url : url,
                type : 'GET'
            },
            "scrollX" : true,
            destroy : true,
    columns : [ {
                    data.detail : 'name'
                },
        ]

【问题讨论】:

    标签: ajax datatable datatables


    【解决方案1】:

    这是可以使用 DataTables ajaxdataSrc 选项的地方:

    ajax : {
      url : url,
      type : 'GET',
      dataSrc: 'data.detail'
    },
    

    此选项告诉 DataTables 通过您的 JSON 进行的迭代应该从 data.detail 对象数组开始。

    通常,(如在您的第一个 JSON 示例中),您不需要此指令 - 因为起点假定为 data。这是标准 jQuery ajax 选项集的 DataTables 扩展。你可以阅读更多关于它的信息here

    相关部分是:

    您可以使用 Javascript 点对象表示法来获取用于多层对象/数组嵌套的数据源。

    编辑:

    澄清一下:进行上述更改后,您可以再次使用原来的方法来识别列数据:

    columns : [ 
      { data : 'name' }, 
      { data : 'another_name' },
      { ... }
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 2015-10-22
      • 1970-01-01
      • 2019-12-09
      • 2013-10-15
      • 2021-04-06
      • 1970-01-01
      相关资源
      最近更新 更多