我有这个PHP代码来构成层次结构
$arr = array(
'name' => "Level 2: A",
'parent' => "Top Level",
'children' => ""
);
$arr2 = array(
'name' => "Top Level",
'parent' => "null",
'children' => "$arr"
);
echo json_encode($arr2);
但我无法访问JSON输出中的数组。
JSON的MY输出:{“name”:“Top Level”,“parent”:“null”,“children”:“Array”}
我的目标是创建一个这样的数组但是使用JSON但它返回array
而不是array
var treeData = [
{
"name": "Top Level",
"parent": "null",
"children": [
{
"name": "Level 2: A",
"parent": "Top Level",
"children": [
{
"name": "Son of A",
"parent": "Level 2: A"
},
{
"name": "Daughter of A",
"parent": "Level 2: A"
}
]
},
{
"name": "Level 2: B",
"parent": "Top Level"
}
]
} ];
答案 0 :(得分:2)
你必须使用引用$arr
$arr2 = array(
'name' => "Top Level",
'parent' => "null",
'children' => $arr // <- remove quotes here
);
执行"$arr"
时,您实际上是将$arr
转换为字符串。这就是为什么你在JSON中只有Array
字符串。
此外,我建议将children
中的$arr
属性更改为空数组而不是空字符串:
$arr = array(
'name' => "Level 2: A",
'parent' => "Top Level",
'children' => array() // <- here
);
这将使您的代码保持一致,因为您将始终在children
属性下拥有一个数组。