根据特定 JSON 结构设置数据表中的列

Set column in datatables according a specific JSON structure

我有一个 JSON 文件,我想使用 mDataProp 属性 在 jquery datatableDescFatorAvaliacao 列中显示。

但是,由于 JSON 中的父节点 DesdobramentoList,我在这方面遇到了一些困难。

如何将数据表列设置为 DescFatorAvaliacao

JavaScript函数

function loadAvaliacaoPDI() {
    var gridAvaliacaoPDI = $('#gridAvaliacaoPDI').DataTable({
        language: {
            url: "//cdn.datatables.net/plug-ins/1.10.7/i18n/Portuguese-Brasil.json"
        },
        "sAjaxDataProp": "",
        destroy: true,
        ajax: {
            "url": 'Actions/GetAvaliacaoPDI.ashx',
            "type": "POST"
        },
        "searching": false,
        aoColumns: [
            { mDataProp: "DescFatorAvaliacao" }
        ]
    });
}

$(function () {
    loadAvaliacaoPDI();
});

JSON

[{
    "DesdobramentoList": [{
        "TipoAvaliador": 1,
        "DescFatorAvaliacao": "Usamos os recursos da empresa de forma consciente e responsável."
    },
    {
        "TipoAvaliador": 1,
        "DescFatorAvaliacao": "Assumimos nossos atos independentemente de sucesso ou fracasso, não damos desculpas."
    },
    {
        "TipoAvaliador": 1,
        "DescFatorAvaliacao": "Agimos como se fôssemos sócios da empresa"
    }]
}]

更新编辑@DSH

提出的解决方案
        "dataSrc": function (json) {                
            for (var i = 0, ien = json.length ; i < ien ; i++) {
                for (var z = 0; z < json[i].DesdobramentoList.length; z++) {
                    var descricaoFator = json[i].DesdobramentoList[z].DescFatorAvaliacao;
                    json[i].DescFatorAvaliacao = descricaoFator;
                }                    
            }                
            return json;
        }

使用 ajax.dataSrc 选项告诉 DataTables 在 DesdobramentoList 而不是 data 中找到数据。

var gridAvaliacaoPDI = $('#gridAvaliacaoPDI').DataTable({
    language: {
        url: "//cdn.datatables.net/plug-ins/1.10.7/i18n/Portuguese-Brasil.json"
    },
    destroy: true,
    ajax: {
        url: 'Actions/GetAvaliacaoPDI.ashx',
        type: "POST",
        dataSrc: "0.DescFatorAvaliacao"
    },
    searching: false,
    columns: [
        { data: "DescFatorAvaliacao" }
    ]
});

PS。我认为您的意思是 return 单个对象,而不是 JSON 中包含单个对象的列表。