我实际上正在建立一个网站,我需要显示一个层次结构,我有限制用JSON构建后者。
因此,在实施任何内容之前,我想到了层次结构的两种可能性,我无法确定哪一种对我的项目最有效。
我必须使用HTML5 BoilerPlate在网页上显示dico_tree
字段中表示的整个层次结构。我将不得不用JavaScript解析这个,以获取它包含的所有数据。
约束
Possibility 1
{
"dico_name" : "Dictionary",
"version" : "1",
"dico_tree" : [
{"ID" : 1,"parent" : null,"children" : [2]},
{"ID" : 2, "parent" : 1, "children": [3,4]},
{"ID" : 3, "parent" : 2, "children": null},
{"ID" : 4, "parent" : 2, "children": null},
{"ID" : 5,"parent" : null,"children" : [6]},
{"ID" : 6, "parent" : 5, "children": [7]},
{"ID" : 7, "parent" : 6, "children": null}],
"custom_translations_list" : [
{"TRANSLATION_ID" : 1, "CUSTOM_TRANSLATION_ID" : 12}
}
Possibility 2
{
"dico_name" : "Dictionary",
"version" : "1",
"dico_tree" : [
{"ID" : 1,"parent" : null,"children" : [
{
"ID" : 2, "parent" : 1, "childen": [
{
"ID" : 3, "parent" : 2, "children": null
},
{
"ID" : 4, "parent" : 2, "children": null
}
]
}
]},
{"ID" : 5,"parent" : null,"children" : [
{
"ID" : 6, "parent" : 5, "childen": [
{
"ID" : 7, "parent" : 6, "children": null
}
]
}
]}
],
"custom_translations_list" : [
{"TRANSLATION_ID" : 1, "CUSTOM_TRANSLATION_ID" : 12},
]
}
如果你需要,我可以添加任何精度!
感谢您提前的时间和帮助:)。
答案 0 :(得分:0)
disco_tree
必须是数组吗?使其成为对象将允许您访问O(1)中的任何项目。此外,如果没有子项的项目具有空数组[]
而不是null
,则可以节省一些烦人的空指针异常。
"dico_tree" : {
1 : {"ID" : 1, "parent" : null, "children" : [2] },
2 : {"ID" : 2, "parent" : 1, "children": [3,4] },
3 : {"ID" : 3, "parent" : 2, "children": [] },
4 : {"ID" : 4, "parent" : 2, "children": [] },
5 : {"ID" : 5, "parent" : null, "children" : [6]},
6 : {"ID" : 6, "parent" : 5, "children": [7] },
7 : {"ID" : 7, "parent" : 6, "children": [] }
},