javascript - 将常规 json 转换为 d3.js 的 flare.json?

标签 javascript regex json d3.js

我有一个像这样的 json:

{
"a": {
    "x": {
        "y": {
            "a": {}, 
            "z": {}, 
            "b": {}
        }
    }, 
    "c": {}, 
    "b": {
        "c": {
            "d": {}
        }
    }, 
    "d": {}, 
     ...
    }
}

有没有快速转换成flare.json格式的方法?

像这样:

{
"name":"a",
"children":[
      {
      "name":"x",
      "children":
            {
              "name":"y",
              "children":[{"name":"a", "size":0},{"name":"z","size":0},{"name":"b","size":0}]

...
}

谢谢。

最佳答案

为此我想出了一系列正则表达式转换。

 #replace-this      #with-this

  ^\s*"             \{"name":"
  : \{\},           \},
  : \{\}            \}
  ": \{$            ","children":\[
  ^\s*\},           \]\},
  ^\s*\}            \]\}              


 #in that order

然后只删除第一行和最后一行(应该是额外的 {]} )

在应用这些正则表达式转换时,

这个:

{
"a": {
"x": {
    "y": {
        "a": {}, 
        "z": {}, 
        "b": {}
    }
}, 
"c": {}, 
"b": {
    "c": {
        "d": {}
    }
}, 
"d": {} 
}

会变成这样:

{
"name": "a",
"children": [{
    "name": "x",
    "children": [{
        "name": "y",
        "children": [{
            "name": "a"
        },
        {
            "name": "z"
        },
        {
            "name": "b"
        }]
    }]
},
{
    "name": "c"
},
{
    "name": "b",
    "children": [{
        "name": "c",
        "children": [{
            "name": "d"
        }]
    }]
},
{
    "name": "d"
}]
}

然后可以与一些 d3js 示例一起使用。

关于javascript - 将常规 json 转换为 d3.js 的 flare.json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16463171/

相关文章:

java - 如何创建适当的 POJO 来提供 JSON 响应?

javascript - NodeJS JSON 结构

javascript - 当网格底部有空白时,Bootstrap + Masonry 添加空白 div

javascript - 组织的用户限制

javascript - Javascript 如何知道哪个函数引用是一个类?

一个字符或另一个字符的正则表达式?

javascript - 从 JavaScript 数组中删除元素

c# - 使用C#从XML检索文本

python - 正则表达式给出元组而不是完全匹配

javascript - 为 jqGrid 使用自定义 JSON 格式