如上所述,我正在尝试使用d3绘制图表,其中我需要数据以Parent Child关系存在,但我无法弄清楚如何将MySQL查询结果转换为JSON Parent child格式。

提供的帮助将非常感谢。

我正在尝试在下面的URL中复制图表:

Zoomable Partition Layout(单击分区以放大或缩小树)

MySQL中的数据:

列1列2列3
第一名-1500
第一个孩子500强
第二名儿童500强
第三名儿童500强
第一子孩子第一孩子250
第一子孩子第一孩子250
第二子孩子第二孩子250
第二子孩子第二孩子250
第三子孩子第三子孩子250
第三子孩子第三子孩子250



所需数据格式:

{
“ name”:“第一名”,
“儿童”:[
{
“ name”:“第一个孩子”,
“儿童”:[
{“ name”:“第一个子孩子”,“ size”:250},
{“名称”:“第一个子孩子”,“尺寸”:250}
]
},
{
“ name”:“第二个孩子”,
“儿童”:[
{“名称”:“第二子”,“尺寸”:250},
{“名称”:“第二子”,“大小”:250}
]
},
{
“ name”:“第三子”,
“儿童”:[
{“名称”:“第三子”,“尺寸”:250},
{“名称”:“第三子”,“尺寸”:250}
]
}
]
}

最佳答案

这是一些伪代码,假设是一个层次结构:


从数据库中获取父/子行(select t1.parent, t1.item, size from tree t1, tree t2 where t1.parent=t2.item
遍历行:


如果父级不同于先前的父级,并且设置了先前的父级:


将对象推入数组
开始一个新对象

向对象添加子项和大小

将最后一个对象推入数组
获取根对象(其中parent为null)
使用根对象将对象编码为json;见Create JSON-object the correct way
输出json

关于javascript - 将MySQL查询结果转换为分层数据-D3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19287099/

10-12 16:19