Javascript JSON对象操作的格式是否适合可视化?

Javascript JSON对象操作的格式是否适合可视化?,javascript,arrays,json,array-map,array-filter,Javascript,Arrays,Json,Array Map,Array Filter,我正在操纵JSON,以使其适合可视化。我希望它是以父子关系的形式 我已经写了一段代码,它可以工作,但是它没有包含超级父级(父级id键为null的父级) var flare=createJSON(this.dataset); 函数createJSON(原始){ 函数getChildren(pid){ 返回原始。过滤器(函数(d){ 返回d.parent_id==pid; }) .地图(功能(d){ 返回{ 姓名:d.name, id:d.id, 家长id:d.家长id, 价值:d.价值, logV

我正在操纵JSON,以使其适合可视化。我希望它是以父子关系的形式

我已经写了一段代码,它可以工作,但是它没有包含超级父级(父级id键为null的父级)

var flare=createJSON(this.dataset);
函数createJSON(原始){
函数getChildren(pid){
返回原始。过滤器(函数(d){
返回d.parent_id==pid;
})
.地图(功能(d){
返回{
姓名:d.name,
id:d.id,
家长id:d.家长id,
价值:d.价值,
logValue:d.logValue,
儿童:getChildren(d.id)
};
});
}
返回original.map(d=>getChildren(d.id))
}
console.log(flare)
这是我的小提琴,它正在创建带有父子关系的JSON,但不包括超级父对象,因为超级父对象具有
parent\u id
具有
null
。我缺少什么帮助吗?

var dataset=[{“id”:1,“name”:“JOURNAL”,“tree_level”:1,“display_order”:null,“parent_或leaf_或两者”:“parent”,“parent_id”:null,“value”:4346},{“id”:2,“name”:“OTHERS”,“tree_level”:1,“display_order”:null,“parent_或_leaf_或两者”:“parent”;“parent_id”:null,“value”:28},{“id”:3,“name”:“PATENT”,“tree_level”:1,“display_order”:null,“家长”、“家长id”:null,“值”:18526},{“id”:4,“名称”:“A”,“树级别”:2,“显示顺序”:null,“家长id”:1,“值”:144},{“id”:5,“名称”:“B”,“树级别”:2,“显示顺序”:null,“家长id”或“树级别”:“两者”,“家长id”:1,“值”:1966},{“id”:6,“名称”:144},{“B”,“树级别”:2,“显示顺序”:null,“家长id”或“叶级别”:1,“值”:1966},{“id”:6,“树级别”:“显示顺序”:“树级别”:“2”“:null,“parent_或_leaf_或_both”:“both”,“parent_id”:1,“value”:285},{“id”:7,“name”:“D”,“tree_level”:2,“display_order”:null,“parent_或_leaf_或_both”:“both”,“parent_id”:1,“value”:23},{“id”:8,“name”:“E”,“tree”;“tree_level”:2,“display_order”:null,“parent_或_leaf_level”:1,“value”:66},{“name”;“display”;“tree”;“display”,“双亲”、“双亲”或“双亲”:“双亲”、“双亲id”:1,“值”:1},{“id”:13,“名称”:“I”,“树级别”:2,“显示顺序”:null,“双亲”或“双亲”或“双亲”:1,“值”:1},{“id”:14,“名称”:“J”,“树级别”:2,“显示顺序”:null,“双亲”或“双亲id”:1,“值”:1528},{“双亲id”:1,“名称”:1},{“树级别”:2,{“父”、“父”或“叶”或“两者”:“父”、“父”id:1,“值”:61},{“id”:17,“名称”:“M”,“树”级别:2,“显示顺序”:null,“父”或“叶”或“两者”:“两者”,“父”id:1,“值”:153},{“id”:18,“名称”:“N”,“树”级别:2,“显示顺序”:null,“父”或“叶”或“两者”,“父”id:1,“值”:25“,”id“,”名称:”P“,“树”级别:null,“,”“双亲”、“双亲”、“双亲id”:1,“价值”:139},{“id”:33,“姓名”:“公司”、“树级别”:2,“显示顺序”:null,“双亲”、“双亲”、“双亲id”:2,“价值”:1},{“id”:40,“姓名”:“会议”,“树级别”:2,“显示顺序”:null,“双亲”、“双亲id”:2,“价值”:19},{“id”:42,“姓名”:“其他”,“树级别”显示顺序:null,“父项”或“叶项”或“两者”:“叶项”,“父项id”:2,“值”:5},{“id”:45,“名称”:“产品传单”,“树级”:2,“显示顺序”:null,“父项”或“叶项”或“两者”:“叶项”,“父项id”:2,“值”:1},{“id”:48,“名称”:“社会”,“树级”:2,“显示顺序”:null,“父项”或“叶项”或“两者”:“叶项”,“父项id”:2,“值”:1},{“名称”:“网站名称”:,“树级”:2,“显示顺序”:null,“父级”或“父级”或“父级”或“父级”或“父级”或“父级”或“父级”:3,“值”:2,“显示顺序”:null,“父级”或“树级”:2,“显示顺序”:null,“父级”或“父级”或“父级”或“父级”或“父级”:3,“值”:2004},{“id”:55,“名称”:“我们”,“树级”:2,“显示顺序”:null,“父级”或“父级”或“父级”或“叶级”或“父级”:1133,“值”:57“{id”:“树级”:2,“显示顺序”:null,“父级”或“叶级”或“两者”:“叶级”,“父级”id:3,“值”:5172},{“id”:74,“名称”:“ACS Med Chem Lett”,“树级”:3,“显示顺序”:null,“父级”或“叶级”或“两者”:“叶级”,“父级”id:4,“值”:66},{“id”:684,“名称”:“Annu.Rep Med.Chem.”,“树级”:3,“显示顺序”:null,“父级”或“叶级”或“父级”或“叶级”:“父级”:“叶级”::4,“值”:19},{“id”:863,“名称”:“Arch.Pharm.(Weinheim)”,“tree_level”:3,“display_order”:null,“parent_或_leaf_或_both”:“leaf”,“parent_id”:4,“值”:59},{“id”:1029,“name”:“Biochem.Pharmacol.”,“tree_level”:3,“display_order”:null,“parent_或_leaf_或____或_两者”:“leaf_”:“leaf”;“leaf”,“parent_id”:5,“value”:2},{“id”:1079,“name”Biochemicholacy:1079,“tree"""",“显示顺序”:null,“父级”或“父级”或“父级”或“父级”或“两者”:“叶”,“父级”id:5,“值”:2},{“id”:1114,“名称”:“Bioorg.Med.Chem.”,“树级”:3,“显示顺序”:null,“父级”或“父级”或“叶级”或“两者”:“叶”,“父级”id:5,“值”:644},{“id”:1115,“名称”:“Bioorg Med.Chem.Lett.”,“树级”:3,“显示顺序”:null,“父级”或“父级”或“叶级”或“父级”或“叶级”,或“父级”,id:5,“父级”id”:“父级”:“父级”:“:1169},{“id”:1206,“名称”:“BMC神经症”,“树级”:3,“显示顺序”:null,“父或叶”或“两者”:“叶”,“父或叶id”:5,“值”:1},{“id”:1251,“名称”:“脑恢复”,“树级”:3,“显示顺序”:null,“父或叶”或“两者”:“叶”,“父或叶id”:5,“值”:2},{“id”:1309,“名称”:“Br.J.药理学”,“树级”:null,“parent_or_leaf_or_both”:“leaf”,“parent_id”:5,“value”:8},{“id”:1361,“name”:“Bull.Korean Chem.Soc.”,“tree_level”:3,“display_order”:null,“parent_or_leaf_or_both”:“leaf”,“parent_id”:5,“value”:138},{“id”:1573,“name”:“Cent.Nerv.Syst.Agents Med.Chem.”,“tree_level”:3,“display_order”:null,“parent_or_leaf_or_or_or_or_order”:“leaf”;“parent_id”:6,“parent_id”:1,{“:1599,“名称”:“化学生物化学”,“树级”:3,“显示顺序”:null,“父级”或“父级”或“父级”或“父级”或“两者”:“叶级”,“父级”id:6,“值”:2},{“id”:1605,“名称”:“化学生物化学”,“树级”:3,“显示顺序”:null,“父级”或“父级”或“叶级”或“两者”:“叶级”,“父级”id:6,“值”:6},{“id”:1649,“名称”:“化学生物化学”,“树级”:3,“显示顺序”:null,“父级”或“父级”:“叶”,“父项id”:6,“值”:12},{“id”:1785,“名称”:“临床试验胃肠道”,“树级”:3,“显示顺序”:null,“父项或叶项或两者”:
  return original
    .filter(d => d.parent_id === null)
    .map(d => {
      return {
        name: d.name,
        id: d.id,
        parent_id: d.parent_id,
        value: d.value,
        logValue: d.logValue,
        children: getChildren(d.id)
      };
    });
//create a name: node map
var dataMap = dataset.reduce(function(map, node) {
    map[node.id] = node;
    return map;
}, {});

//create the tree array
var tree = [];
dataset.forEach(function(node) {
//add to parent
var parent = dataMap[node.parent_id];
if (parent) {

   //create child array if it doesn't exist
   (parent.children || (parent.children = []))

   //add node to child array
       .push(node);
   } else {
       //parent is null or missing
       tree.push(node);
   }
});
// console.log(tree)