我正在尝试使用来自MySQL数据库的数据创建数组,这是使用Treant js(我可以找到的最佳方法)创建数据树的结论,我得出的结论是我必须首先在php中创建数组然后对其进行json_encode()使其正常运行。我的问题是如何使PHP数组具有以下格式以及如何使用json_enconde进行转换?
构造数据树的javascript代码如下:
Array approach
var config = {
container: "#collapsable-example",
animateOnInit: true,
node: {
collapsable: true
},
animation: {
nodeAnimation: "easeOutBounce",
nodeSpeed: 700,
connectorsAnimation: "bounce",
connectorsSpeed: 700
}
},
malory = {
image: "img/malory.png"
},
lana = {
parent: malory,
image: "img/lana.png"
}
figgs = {
parent: lana,
image: "img/figgs.png"
}
sterling = {
parent: malory,
childrenDropLevel: 1,
image: "img/sterling.png"
},
woodhouse = {
parent: sterling,
image: "img/woodhouse.png"
},
pseudo = {
parent: malory,
pseudo: true
},
cheryl = {
parent: pseudo,
image: "img/cheryl.png"
},
pam = {
parent: pseudo,
image: "img/pam.png"
},
chart_config = [config, malory, lana, figgs, sterling, woodhouse, pseudo, pam, cheryl];
预先感谢
答案 0 :(得分:0)
由于您没有告诉我们有关mysql数据的任何信息,因此我只能告诉您与上面显示的数组等效的php是(部分):
$woodhouse = [
'parent' => $sterling,
'image' => 'img/woodhouse.png',
},
json_encode
然后将为woodhouse创建如下所示的JSON:
{
parent: {
parent: { /* malory data here */ },
childrenDropLevel: 1,
image: "img/sterling.png"
},
image: "img/woodhouse.png"
},
要认识的重要一点是原始文档中的stirling
对象也是递归编码的。 JSON不像您在示例中那样支持对象引用。
我怀疑(但不是很清楚)您实际上需要创建的JSON看起来更像是来自数据库的数据-包括每个人的ID和持有该ID的“父”字段父级,而不是引用。
一旦数据通过网络,您就可以在javascript客户端中使用引用创建结构。