关于 json 格式 (jstree, php)
about the json format (jstree, php)
我正在尝试制作如下所示的数据格式。使用 jstree 模块
[{
"id":"1" ,
"parent_id":"0",
"text":"TEST",
"children":[{
"id":"2",
"parent_id":"1",
"text":"TEST1",
"children":[{
"id":"4",
"parent_id":"2",
"text":"TEST1-1"
}, {
"id":"5",
"parent_id":"2",
"text":"TEST1-2"
}, {
"id":"6",
"parent_id":"2",
"text":"TEST1-3"
}]
}, {
"id":"3",
"parent_id":"1",
"text":"TEST2",
"children":[{
"id":"7",
"parent_id":"3",
"text":"TEST2-1"
}, {
"id":"8",
"parent_id":"3",
"text":"TEST2-1"
}, {
"id":"9",
"parent_id":"3",
"text":"TEST2-1"
}]
}]
}]
但是..我的是
[{
"id":"1" ,
"parent_id":"0",
"text":"TEST",
"children":{
"id":"3",
"parent_id":"1",
"text":"\ud14c\uc2a4\ud2b82",
"children":{
"id":"9",
"parent_id":"3",
"text":"\ud14c\uc2a4\ud2b82-3"
}
}
},{
"children":{
"id":"1",
"parent_id":"0",
"text":"TEST1",
"children":{
"id":"3",
"parent_id":"1",
"text":"TEST2",
"children":{
"id":"9",
"parent_id":"3",
"text":"TEST2-3"
}
}
}
},{
"id":"2",
"parent_id":"1",
"text":"TEST1",
"children":{
"id":"6",
"parent_id":"2",
"text":"TEST1-3"
}
},{
"id":"3",
"parent_id":"1",
"text":"TEST2",
"children":{
"id":"9",
"parent_id":"3",
"text":"TEST2-3"
}
},{
"id":"4",
"parent_id":"2",
"text":"TEST1-1"
},{
"id":"5",
"parent_id":"2",
"text":"TEST1-2"
},{
"id":"6",
"parent_id":"2",
"text":"TEST1-3"
},{
"id":"7",
"parent_id":"3",
"text":"TEST2-1"
},{
"id":"8",
"parent_id":"3",
"text":"TEST2-2"
},{
"id":"9",
"parent_id":"3",
"text":"TEST2-3"
}]
我不知道数组或 JSON。这是代码:
$refs = array();
$list = array();
$sql = "
select id, parent_id, text
from code
where use_yn = 'Y'
$result = mysql_query($sql);
while($data = mysql_fetch_assoc($result)) {
$thisref = &$refs[$data['id']];
$thisref['id'] = $data['id'];
$thisref['parent_id'] = $data['parent_id'];
$thisref['text'] = iconv("euc-kr", "utf-8", $data['text']);
if ($data['id'] == 0) {
$list[ $data['id'] ] = &$thisref;
} else {
$refs[ $data['parent_id'] ]['children'] = &$thisref;
}
}
echo json_encode(array_values($refs));
谁能帮帮我?
您正在混合不同的方法来为 jsTree 形成 json。
您要么 1) 使用使用键 children
的多级结构 - 您在结果 json 的开头有它,或者 2) 您使用单级结构,不要使用 children
关键字,指定父节点即可。我建议你使用第二种方式。
而不是 parent_id
你应该简单地使用 parent
.
您的输出 json 包含 ID 为“1”、“3”、“9”的重复条目。不行了。
对于根节点使用#
作为id。
对我来说,您的目标 json 应该如下所示。要获得正确的 php 迭代片段可能看起来更接近于如下所示,但您必须专门过滤掉代码中不存在的重复条目。
然后您将获得本演示中的预期结果 - Fiddle。
while($data = mysql_fetch_assoc($result)) {
$thisref = &$refs[$data['id']];
$thisref['id'] = $data['id'] == 0 ? '#' : $data['id']; // if id is 0 , it's a root node, replace with '#'
$thisref['parent'] = $data['parent_id'] == 0 ? '#' : $data['parent_id'];// if parent id is 0, it's a root node, replace with '#'
$thisref['text'] = iconv("euc-kr", "utf-8", $data['text']);
$refs[] = &$thisref;
}
正确json:
var data = [{
"id": "1",
"parent": "#",
"text": "TEST"
}, {
"id": "3",
"parent": "1",
"text": "테스트2"
}, {
"id": "9",
"parent": "3",
"text": "테스트2-3"
}, {
"id": "2",
"parent": "1",
"text": "TEST1"
}, {
"id": "6",
"parent": "2",
"text": "TEST1-3"
}, {
"id": "4",
"parent": "2",
"text": "TEST1-1"
}, {
"id": "5",
"parent": "2",
"text": "TEST1-2"
}, {
"id": "6",
"parent": "2",
"text": "TEST1-3"
}, {
"id": "7",
"parent": "3",
"text": "TEST2-1"
}, {
"id": "8",
"parent": "3",
"text": "TEST2-2"
}]
查看文档
我正在尝试制作如下所示的数据格式。使用 jstree 模块
[{
"id":"1" ,
"parent_id":"0",
"text":"TEST",
"children":[{
"id":"2",
"parent_id":"1",
"text":"TEST1",
"children":[{
"id":"4",
"parent_id":"2",
"text":"TEST1-1"
}, {
"id":"5",
"parent_id":"2",
"text":"TEST1-2"
}, {
"id":"6",
"parent_id":"2",
"text":"TEST1-3"
}]
}, {
"id":"3",
"parent_id":"1",
"text":"TEST2",
"children":[{
"id":"7",
"parent_id":"3",
"text":"TEST2-1"
}, {
"id":"8",
"parent_id":"3",
"text":"TEST2-1"
}, {
"id":"9",
"parent_id":"3",
"text":"TEST2-1"
}]
}]
}]
但是..我的是
[{
"id":"1" ,
"parent_id":"0",
"text":"TEST",
"children":{
"id":"3",
"parent_id":"1",
"text":"\ud14c\uc2a4\ud2b82",
"children":{
"id":"9",
"parent_id":"3",
"text":"\ud14c\uc2a4\ud2b82-3"
}
}
},{
"children":{
"id":"1",
"parent_id":"0",
"text":"TEST1",
"children":{
"id":"3",
"parent_id":"1",
"text":"TEST2",
"children":{
"id":"9",
"parent_id":"3",
"text":"TEST2-3"
}
}
}
},{
"id":"2",
"parent_id":"1",
"text":"TEST1",
"children":{
"id":"6",
"parent_id":"2",
"text":"TEST1-3"
}
},{
"id":"3",
"parent_id":"1",
"text":"TEST2",
"children":{
"id":"9",
"parent_id":"3",
"text":"TEST2-3"
}
},{
"id":"4",
"parent_id":"2",
"text":"TEST1-1"
},{
"id":"5",
"parent_id":"2",
"text":"TEST1-2"
},{
"id":"6",
"parent_id":"2",
"text":"TEST1-3"
},{
"id":"7",
"parent_id":"3",
"text":"TEST2-1"
},{
"id":"8",
"parent_id":"3",
"text":"TEST2-2"
},{
"id":"9",
"parent_id":"3",
"text":"TEST2-3"
}]
我不知道数组或 JSON。这是代码:
$refs = array();
$list = array();
$sql = "
select id, parent_id, text
from code
where use_yn = 'Y'
$result = mysql_query($sql);
while($data = mysql_fetch_assoc($result)) {
$thisref = &$refs[$data['id']];
$thisref['id'] = $data['id'];
$thisref['parent_id'] = $data['parent_id'];
$thisref['text'] = iconv("euc-kr", "utf-8", $data['text']);
if ($data['id'] == 0) {
$list[ $data['id'] ] = &$thisref;
} else {
$refs[ $data['parent_id'] ]['children'] = &$thisref;
}
}
echo json_encode(array_values($refs));
谁能帮帮我?
您正在混合不同的方法来为 jsTree 形成 json。 您要么 1) 使用使用键
children
的多级结构 - 您在结果 json 的开头有它,或者 2) 您使用单级结构,不要使用children
关键字,指定父节点即可。我建议你使用第二种方式。而不是
parent_id
你应该简单地使用parent
.您的输出 json 包含 ID 为“1”、“3”、“9”的重复条目。不行了。
对于根节点使用
#
作为id。
对我来说,您的目标 json 应该如下所示。要获得正确的 php 迭代片段可能看起来更接近于如下所示,但您必须专门过滤掉代码中不存在的重复条目。
然后您将获得本演示中的预期结果 - Fiddle。
while($data = mysql_fetch_assoc($result)) {
$thisref = &$refs[$data['id']];
$thisref['id'] = $data['id'] == 0 ? '#' : $data['id']; // if id is 0 , it's a root node, replace with '#'
$thisref['parent'] = $data['parent_id'] == 0 ? '#' : $data['parent_id'];// if parent id is 0, it's a root node, replace with '#'
$thisref['text'] = iconv("euc-kr", "utf-8", $data['text']);
$refs[] = &$thisref;
}
正确json:
var data = [{
"id": "1",
"parent": "#",
"text": "TEST"
}, {
"id": "3",
"parent": "1",
"text": "테스트2"
}, {
"id": "9",
"parent": "3",
"text": "테스트2-3"
}, {
"id": "2",
"parent": "1",
"text": "TEST1"
}, {
"id": "6",
"parent": "2",
"text": "TEST1-3"
}, {
"id": "4",
"parent": "2",
"text": "TEST1-1"
}, {
"id": "5",
"parent": "2",
"text": "TEST1-2"
}, {
"id": "6",
"parent": "2",
"text": "TEST1-3"
}, {
"id": "7",
"parent": "3",
"text": "TEST2-1"
}, {
"id": "8",
"parent": "3",
"text": "TEST2-2"
}]
查看文档