dhtmlxgantt填充嵌套的JSON数据

时间:2017-06-19 09:31:58

标签: javascript html json dhtmlx

我的页面中有一个dhtmlx甘特图,通常它可以完美地工作但现在当我有一个嵌套数组的JSON文件时,我的所有输出都将是unrecognized。我试图填充official name

任何人都可以帮我吗?非常感谢你。

JSON

{
    "data": [
        {
            "assign_to": {
                "id": 3,
                "employee_id": "28141",
                "official_name": "Hal Jordan",
            },
            "task": {
                "id": 1,
                "name": "Modeling",
                "description": "3d modeling work"
            },
            "start_date": "2017-06-15",
            "end_date": "2017-06-19"
        },
        {
            "assign_to": {
                "id": 3,
                "employee_id": "28144",
                "official_name": "Kyle Rayner",
            },
            "task": {
                "id": 8,
                "name": "Composting",
                "description": null
            },
            "start_date": "2017-06-01",
            "end_date": "2017-06-08"
        }
    ]
}

的Javascript

 gantt.config.columns = [
       {name: "assign_to.official_name", label: "Assign To", align: "left", width: 70},
    ];

function initializeGantt() {
   gantt.init("my_scheduler");
   gantt.load("/dashboard/ganttchart_list/5/?format=json");
}

initializeGantt();

HTML

<div id="my_scheduler" style='width:1405px; height:245px;'></div>

1 个答案:

答案 0 :(得分:2)

dhtmlx gantt不支持嵌套结构,因此您需要在将项目加载到甘特图之前对其进行预处理。 既然你知道你有哪种格式以及gantt(https://docs.dhtmlx.com/gantt/desktop__supported_data_formats.html#json)所期望的格式,那么它应该不是问题。

最重要的事情

  1. 确保数据项具有&#39; id&#39;属性
  2. 如下所示定义列名:

    {name:&#34; assign_to.official_name&#34;,label:&#34;分配给&#34;,对齐:&#34;左&#34;,宽度:70},

    列名不能映射到嵌套对象的属性,因此您必须在加载过程中展平结构,非常粗略,可以通过以下方式完成: http://snippet.dhtmlx.com/129d2e043

  3. 或者定义一个列模板,该模板将从嵌套对象中获取值: http://snippet.dhtmlx.com/9e8e65e85

    • 请检查控制台输出以获取结果数据集