JQUERY JSON 数据---正确解析嵌套节点的 Google Orgchart

JQUERY JSON data for Google Orgchart --- parsing nested nodes properly

提问人:user2232552 提问时间:9/12/2023 最后编辑:jcarrerauser2232552 更新时间:9/13/2023 访问量:19

问:

我正在尝试创建一个带有 v 和 f 节点的数组,如图所示。

原始数据看起来像这样,但出于某种原因,我可以用jquery代码正确拆分它。

[{v:'12345678', f:'员工 1'},'','测试']

当我手动定义它时,它会起作用:

var newarray = []; newarray= [ [{v:'12345678', f:'Employee 1'},'','Test'] ];

但是,我无法将此字符串转换为数组以让谷歌组织结构图正确解释它。

“{'v':'12345678','f':'员工 1'},,测试”

不确定是否有办法删除双引号,或者我错过了一个步骤。任何帮助将不胜感激。

=

desired result

javascript jquery 数组 json 组织结构图

评论

0赞 user2232552 9/13/2023
我想经过大量的试验和错误,我找到了答案。

答:

0赞 user2232552 9/13/2023 #1

我终于弄清楚了正确解释json数据的部分。其中一些需要确保引号在来自 SharePoint 的源数据中的正确位置。

然后它只是使用 JSON。解析功能(参见 addRow 步骤之前)

function OnSuccess(data) {
var org_data = data.value;

//only keep data field from SP list 
var listToKeep = ['data'];

org_data.forEach((obj)=>{
  Object.keys(obj).forEach((key)=>{
     if(listToKeep.indexOf(key) === -1){
       delete obj[key];
     }
  });
});

console.log(org_data);

//Google chart
google.charts.load('current', {
  callback: function () {
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Name');
    data.addColumn('string', 'Manager');
    data.addColumn('string', 'ToolTip');   

//add rows of hierearchy from JSON data---spliting the data into the 3 necessary columns

//loop through all org data records to create table
for ( var i = 0, l = org_data.length; i < l; i++ ) {

//Parse JSON format
var row = JSON.parse(org_data[i].data);

    data.addRow(row);
}