在JQuery Datatables中的嵌套json对象中渲染列值

时间:2018-05-21 06:09:16

标签: jquery json datatables nested

我想将嵌套json对象的列数据呈现给JQuery Datatable Cell。我为此尝试了几个小时但却无法实现。以下是我的Json结果。

JSON

    [
    {
        "auditSectionId": 2,
        "associateAuditId": 2,
        "associateAudit": {
            "id": 2,
            "auditTitle": "Duis id justo quis nibh facilisis rutrum.",
            "year": 2011,
            "term": 1,
            "createdUser": null,
            "createdUserUserId": 2,
            "createdDate": "2018-05-19T11:16:13.553",
            "lastUpdatedUser": null,
            "lastUpdatedUserUserId": null,
            "lastUpdatedDate": null,
            "updatedCount": 0,
            "isDeleted": false,
            "auditOfAuditSection": []
        },
        "auditAreaDepartmentId": 1,
        "auditArea": {
            "departmentId": 1,
            "departmentName": "MIS",
            "location": "D Block Ground Flow",
            "description": "All are qualified",
            "personInIncharge": null,
            "personInInchargeEmployeeId": 23,
            "responsibleDepartmentForCalibrationLog": null,
            "responsibleDepartmentForServiceLog": null,
            "locationOfEquipment": null,
            "departmentOfAuditSection": []
        },
        "plannedDateTime": "2018-05-01T13:00:00",
        "conductedDateTime": "2018-05-09T11:30:00",
        "auditor": [
            {
                "teamMember": {
                    "schedules": [],
                    "employeeId": 2,
                    "employeeNo": "00005339",
                    "employeeStatus": true,
                    "epfNo": "00000325",
                    "nameWithInitial": "R E PRASANDINI",
                    "callingName": "Erandika",
                    "department": {
                        "departmentId": 1,
                        "departmentName": "MIS",
                        "location": "D Block Ground Flow",
                        "description": "All are qualified",
                        "personInIncharge": null,
                        "personInInchargeEmployeeId": 23,
                        "responsibleDepartmentForCalibrationLog": null,
                        "responsibleDepartmentForServiceLog": null,
                        "locationOfEquipment": null,
                        "departmentOfAuditSection": []
                    },
                    "departmentDepartmentId": 1,
                    "appoinmentDate": "2011-11-08T00:00:00",
                    "designation": "Production Executive",
                    "isResigned": false,
                    "resignedDate": "2017-02-07T00:00:00",
                    "isTerminated": false,
                    "isRetired": false,
                    "isTrainee": false,
                    "isSkilled": false,
                    "isUnSkilled": false,
                    "isSemiSkilled": false,
                    "isManagerial": false,
                    "isContract": false,
                    "contractEndDate": "2016-07-15T00:00:00",
                    "isSupervisor": false,
                    "isSecurity": false,
                    "isOfficeStaff": true,
                    "isTechnical": false,
                    "qualifications": "",
                    "gender": "Female",
                    "profile": null,
                    "profileId": 1,
                    "personInIncharge": null,
                    "recieverCommunication": null,
                    "senderCommunication": null,
                    "responsiblePersonForCalibrationLog": null,
                    "responsiblePersonForServiceLog": null,
                    "employeeCommunicationAchievementResponsibility": null
                },
                "teamMemberEmployeeId": 2,
                "allowableScope": "Duis id justo quis nibh facilisis rutrum.",
                "qualification": "Duis id justo quis nibh facilisis rutrum.",
                "experience": "Duis id justo quis nibh facilisis rutrum.",
                "isActive": true,
                "section": []
            }
        ],
        "createdUser": null,
        "createdUserUserId": 2,
        "createdDate": "2018-05-19T11:24:26.907",
        "lastUpdatedUser": null,
        "lastUpdatedUserUserId": null,
        "lastUpdatedDate": null,
        "updatedCount": 0,
        "isDeleted": false
    }
]

以下json数据段出现问题

"auditor": [
        {
            "teamMember": {
                "schedules": [],
                "employeeId": 2,
                "employeeNo": "00005339",
                "employeeStatus": true,
                "epfNo": "00000325",
                "nameWithInitial": "R E PRASANDINI",
                "callingName": "Erandika",
                "department": {
                    "departmentId": 1,
                    "departmentName": "MIS",
                    "location": "D Block Ground Flow",
                    "description": "All are qualified",
                    "personInIncharge": null,
                    "personInInchargeEmployeeId": 23,
                    "responsibleDepartmentForCalibrationLog": null,
                    "responsibleDepartmentForServiceLog": null,
                    "locationOfEquipment": null,
                    "departmentOfAuditSection": []
                },
                "departmentDepartmentId": 1,
                "appoinmentDate": "2011-11-08T00:00:00",
                "designation": "Production Executive",
                "isResigned": false,
                "resignedDate": "2017-02-07T00:00:00",
                "isTerminated": false,
                "isRetired": false,
                "isTrainee": false,
                "isSkilled": false,
                "isUnSkilled": false,
                "isSemiSkilled": false,
                "isManagerial": false,
                "isContract": false,
                "contractEndDate": "2016-07-15T00:00:00",
                "isSupervisor": false,
                "isSecurity": false,
                "isOfficeStaff": true,
                "isTechnical": false,
                "qualifications": "",
                "gender": "Female",
                "profile": null,
                "profileId": 1,
                "personInIncharge": null,
                "recieverCommunication": null,
                "senderCommunication": null,
                "responsiblePersonForCalibrationLog": null,
                "responsiblePersonForServiceLog": null,
                "employeeCommunicationAchievementResponsibility": null
            },

我想将审核者namewithinitials列(在auditor.teamMember中嵌套)呈现到JQuery Datatables单元格中。 AuditorSection和Employee表有很多关系。 到目前为止,我编写了JQuery Datatable渲染方法,如下所示

{
  data: "auditor.[,].teamMember",
  render: function (data, type, row) {                                
         alert(data.nameWithInitial);
         return data;
    }
 }

但它不会奏效。我是Datatables的新手。所以请给我任何帮助和建议来解决这个问题。感谢

2 个答案:

答案 0 :(得分:1)

谢谢大家 我找到了解决方案。我只需要从审计对象数组中获取teamMember.callingName对象。

{
    //8
    data: "auditor.[,].teamMember.callingName",
    render: function (data, type, row) {
       return data;
    }
}

答案 1 :(得分:0)

在我正在使用的此数据JSON模式中:

{
  id: 3271,
  date: "2019-12-18",
  description: "Lots of text",
  agreements: [
    {
      agreement: {
        description: "Ok. "
      }
    }
  ]
}

我在访问JSON数据时遇到了麻烦,这是我可以解决的


$('.table-data-correspondencia').DataTable({
        "ajax": {
            "processing": true,
            "url": "agreements_data.json",
            "dataSrc": ""
        },
        "columns": [
            { "data": "id" },
            { "data": "date" },
            { "data": "description" },
            { "data": "agreements.[,].agreement.description" },
        ],
            "lengthChange": false,
            "bSort": false,
        responsive: true,
            language: {
                search: "_INPUT_",
                searchPlaceholder: "Buscar",
                info: "Mostrando _PAGE_ de _PAGES_",
                "paginate": {
                    "next": "Siguiente página",
                    "previous": "Página Anterior"
                }
            }
        });

我希望这可以帮助某人!