Javascript dhtmlxgantt填充嵌套的JSON数据

Javascript dhtmlxgantt填充嵌套的JSON数据,javascript,html,json,dhtmlx,Javascript,Html,Json,Dhtmlx,我在我的页面中有一个dhtmlx甘特图,通常它会工作得很好,但现在当我有一个带有嵌套数组的JSON文件时,我的所有输出都将被无法识别。我正在尝试填充官方名称 有人能帮我吗?多谢各位 JSON Javascript gantt.config.columns = [ {name: "assign_to.official_name", label: "Assign To", align: "left", width: 70}, ]; function initializeGa

我在我的页面中有一个dhtmlx甘特图,通常它会工作得很好,但现在当我有一个带有嵌套数组的JSON文件时,我的所有输出都将被
无法识别。我正在尝试填充
官方名称

有人能帮我吗?多谢各位

JSON

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


dhtmlx甘特图不支持嵌套结构,因此您需要在将项目加载到甘特图之前对其进行预处理。 既然您知道您使用的是哪种格式,以及甘特图()希望使用哪种格式,那么这应该不是问题

最重要的是

  • 确保数据项具有“id”属性
  • 当您这样定义列名时:

    {name:“assign_to.official_name”,标签:“assign to”,对齐:“left”,宽度:70}

    列名无法映射到嵌套对象的属性,因此您必须在加载过程中展平结构,大致上可以通过以下方式完成:

  • 或定义从嵌套对象获取值的列模板:

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

    dhtmlx甘特图不支持嵌套结构,因此您需要在将项目加载到甘特图之前对其进行预处理。 既然您知道您使用的是哪种格式,以及甘特图()希望使用哪种格式,那么这应该不是问题

    最重要的是

  • 确保数据项具有“id”属性
  • 当您这样定义列名时:

    {name:“assign_to.official_name”,标签:“assign to”,对齐:“left”,宽度:70}

    列名无法映射到嵌套对象的属性,因此您必须在加载过程中展平结构,大致上可以通过以下方式完成:

  • 或定义从嵌套对象获取值的列模板:

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

    你好@Alex Klimenkov非常感谢你,这太完美了!但是对于我的数据,它实际上来自RESTAPI,因此如果我想调用
    getData()
    函数,我如何调用它?例如
    http://127.0.0.1/test/ganttchart_data/5/
    再次感谢你,阿列克西!您可以通过ajax get手动请求api,一旦从服务器获取数据,您就可以将其转换并放入甘特图。如果您使用上面我的示例中的jquery和函数,它可能如下所示:
    $.get(“/test/ganttchart\u data/5/”,function(result){gantt.parse(prepareData(result));})你好@Alex Klimenkov非常感谢你,这太完美了!但是对于我的数据,它实际上来自RESTAPI,因此如果我想调用
    getData()
    函数,我如何调用它?例如
    http://127.0.0.1/test/ganttchart_data/5/
    再次感谢你,阿列克西!您可以通过ajax get手动请求api,一旦从服务器获取数据,您就可以将其转换并放入甘特图。如果您使用上面我的示例中的jquery和函数,它可能如下所示:
    $.get(“/test/ganttchart\u data/5/”,function(result){gantt.parse(prepareData(result));})
    
     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();
    
    <div id="my_scheduler" style='width:1405px; height:245px;'></div>