<p>一个json递归树可以有多个根,叶不应该强制指定void children。例如,这里有一棵树,它有两个根“a”和“b”,节点只有一个“level”数据,即节点深度(“children”是可选的):</p>
<pre><code>json_struct = [
{
'level': 'a0',
'children': [{'level': 'a0.1', 'children':
[{'level': 'a0.1.1', 'children': []}]},
{'level': 'a0.2', 'children': [
{'level': 'a0.2.1', 'children': [
{'level': 'a0.2.1.1'},
{'level': 'a0.2.1.2'},
{'level': 'a0.2.1.3'},
{'level': 'a0.2.1.4', 'children': [{'level': 'a0.2.1.4.1'}, {'level': 'a0.2.1.4.2'}]}
]
}
]
},
{'level': 'a0.3', 'children': []},
{'level': 'a0.4', 'children': [{'level': 'a0.4.1'}, {'level': 'a0.4.2', 'children': []}]}
]
},
{
'level': 'b0',
'children': [{'level': 'b0.1', 'children': [{'level': 'b0.1.1'}]},
{'level': 'b0.2', 'children': [{'level': 'b0.2.1', 'children': [
{'level': 'b0.2.1.1'},
{'level': 'b0.2.1.2'},
{'level': 'b0.2.1.3', 'children': [{'level': 'b0.2.1.3.1'}, {'level': 'b0.2.1.3.2'}]},
{'level': 'b0.2.1.4'}
]
}]},
{'level': 'b0.3'}
]
}
]
</code></pre>
<p>代码必须返回叶和完整的分支路径,直到每次离开:</p>
^{pr2}$
<p>它显示:</p>
<ol>
<li>叶:a0.1.1路径:a0->;a0.1->;a0.1.1</li>
<li>叶:a0.2.1.1路径:a0->;a0.2->;a0.2.1->;a0.2.1.1</li>
<li>叶:a0.2.1.2路径:a0->;a0.2->;a0.2.1->;a0.2.1.2</li>
<li>叶:a0.2.1.3路径:a0->;a0.2->;a0.2.1->;a0.2.1.3</li>
<li>叶:a0.2.1.4.1路径:a0->;a0.2->;a0.2.1->;a0.2.1.4->;a0.2.1.4.1</li>
<li>叶:a0.2.1.4.2路径:a0->;a0.2->;a0.2.1->;a0.2.1.4->;a0.2.1.4.2</li>
<li>叶:a0.3路径:a0->;a0.3</li>
<li>叶:a0.4.1路径:a0->;a0.4->;a0.4.1</li>
<li>叶:a0.4.2路径:a0->;a0.4->;a0.4.2</li>
<li>叶:b0.1.1路径:b0->;b0.1->;b0.1.1</li>
<li>叶:b0.2.1.1路径:b0->;b0.2->;b0.2.1->;b0.2.1.1</li>
<li>叶:b0.2.1.2路径:b0->;b0.2->;b0.2.1->;b0.2.1.2</li>
<li>叶:b0.2.1.3.1路径:b0->;b0.2->;b0.2.1->;b0.2.1.3->;b0.2.1.3.1</li>
<li>叶:b0.2.1.3.2路径:b0->;b0.2->;b0.2.1->;b0.2.1.3->;b0.2.1.3.2</li>
<li>叶:b0.2.1.4路径:b0->;b0.2->;b0.2.1->;b0.2.1.4</li>
<li>叶:b0.3路径:b0->;b0.3</li>
</ol>