我有一组嵌套的 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
}
]
}
]
我想使用 D3 将其呈现为嵌套的 html 表。例如,朋友列将有表格显示行中引用的个人的朋友的姓名和薪水。有时其中一个表会有另一个级别的子表。
我想这样做的方法是递归地创建表。我编写了一个 python 程序,它采用这样的 JSON 结构,并在表中呈现表,最简单的方法是递归。我在 d3.js 文档中看到有一个.each()
东西你可以调用,我确信这是我需要的,我只需要一点点提升(https://github.com/mbostock/d3/wiki/Selections#维基每个)。
那么在 D3 中有没有很好的方法来做到这一点?我发现了这个很好的示例,用于将二维数据矩阵呈现为表格创建链接到 csv 文件的表格。通过该教程,我能够将这个数据结构的最外层呈现为一个表格,但我被困在如何根据需要递归地进入各个级别,截至目前它们在表格中显示为“对象”因为我没有将它们与普通字符串和数字区别对待。
我还发现了与我的问题类似的另一个问题/答案,但我真的不太了解 javascript,无法了解递归发生的位置/方式,并重新调整解决方案以满足我的需求:如何处理数据在 D3 中嵌套多个级别?. 任何关于递归或迭代处理嵌套树(如 D3 中的 JSON 数据结构)的教程的建议或指针将不胜感激!