我有一组嵌套的JSON结构,它们的深度各不相同,而且各处都没有相同的密钥集:
[
{
"name":"bob",
"salary":10000,
"friends":[
{
"name": "sarah",
"salary":10000
},
{
"name": "bill",
"salary":5000
}
]
},
{
"name":"marge",
"salary":10000,
"friends":[
{
"name": "rhonda",
"salary":10000
},
{
"name": "mike",
"salary":5000,
"hobbies":[
{
"name":"surfing",
"frequency":10
},
{
"name":"surfing",
"frequency":15
}
]
}
]
},
{
"name":"joe",
"salary":10000,
"friends":[
{
"name": "harry",
"salary":10000
},
{
"name": "sally",
"salary":5000
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
我想使用D3将其渲染为嵌套的html表.例如,friends列将具有显示该行中引用的个人的朋友的姓名和工资的表.有时,这些表中的一个将具有另一级子表.
我想这样做的方法是递归创建表.我编写了一个python程序,它采用这样的JSON结构,并在表中呈现表,最简单的方法是递归执行.我在d3.js文档中看到有一个.each()你可以调用的东西,我相信我需要的东西,我需要一点点提升到那里(https://github.com/mbostock/d3/wiki/Selections# wiki-each).
那么在D3中有一个很好的方法吗?我找到了一个很好的例子,用于将2d数据矩阵呈现为表创建链接到csv文件的表.通过该教程,我能够将这个数据结构的最外层级别呈现为一个表格,但我仍然坚持如何根据需要递归进入各级别,因为现在它们只是在表格中显示为"对象"因为我不会将它们与正常的字符串和数字区别对待.
另外我发现这个问题/答案与我的问题类似,但我真的不太了解javascript,看看递归发生的位置和方式,并重新解决方案以满足我的需求:我如何处理数据是在D3中嵌套多个级别?.任何关于递归或迭代处理嵌套树(如D3中的JSON数据结构)的教程的建议或指针都将非常感激!