将常规json转换为flare.Json为d3.js
Convert regular json to flare.json for d3.js?
我有一个json,像这样:
{
"a": {
"x": {
"y": {
"a": {},
"z": {},
"b": {}
}
},
"c": {},
"b": {
"c": {
"d": {}
}
},
"d": {},
...
}
}
是否有一种快速的方法将其转化为耀斑。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的例子中使用。
您将不得不编写自己的JSON或函数来动态更改JSON。耀斑。json只是遵循遵循Mike Bostock的d3文件的模式。
我给你个提示。您编写的模式看起来是(在伪代码中)
array("name":"a", "children":array("name":"x","children":array(.....
基本上,您需要创建一个多维数组来获得所需的结果。不幸的是,我不知道你是如何得到你的数据的,所以我不能告诉你更多。如果使用php,请使用json_encode方法
echo json_encode($jsonArray)
或在javascript中使用json.stringify
var json = JSON.stringify($jsonArray)
你可以使用d3.nest()
,但是这个函数不会给你想要的大小,甚至。在将数据发送到应用程序之前,您可能需要相应地格式化数据。
如果你想创建一个自定义函数,那么你可以看看这个答案并迭代你的对象的键,因为它甚至不是一个数组。
相关文章:
- D3从嵌套的JSON中绘制第二个圆环图
- 如何获取d3.js中json文件中具有特定值的总行数
- 通过内部数组将JSON数据导入D3.js+Google Map
- 修改d3.js圆环图以读取json数组
- 如何使用D3.js根据json中给出的数据在Heatmap中创建可变大小的矩形
- D3动态json密钥名称
- Neo4j结果(JSON格式)创建D3树图
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 点击浏览器的“后退”按钮显示的是JSON而不是HTML(使用Rails和d3.js)
- 在 d3.js 中导入 json 文件
- D3.js根据 JSON 值将圆圈附加到组
- D3.js:通过Force Layout从JSON文件加载多个网络
- 从D3中的JSON中获取最大值
- D3.js可以't加载json文件
- 如何在d3之外调用d3.json()
- 如何动态地决定并告诉d3.json()函数何时使用哪个json
- 从d3.js中的文件读取json数据不起作用
- 通过flask服务器上的队列访问d3.json对象时出现问题
- 如何加载CSV和JSON文件,并使用d3将两个数据集组合到一个数据集.Json, d3.csv和d3.zip
- Javascript, JSON,D3和访问嵌套变量来创建饼状图