ネストされた 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 テーブルとしてレンダリングしたかったのです。たとえば、友人の列には、行で参照されている個人の友人の名前と給与を示すテーブルがあります。これらのテーブルの 1 つに別のレベルのサブテーブルがある場合があります。
これを行う方法は、テーブルを再帰的に作成することだと思います。このような JSON 構造を取り、テーブル内にテーブルをレンダリングする Python プログラムを作成しましたが、これを行う最も簡単な方法は再帰的でした。d3.jsのドキュメントには、.each()
呼び出すことができるものがあることがわかります。これは私が必要としているものだと確信しています。ウィキごと)。
D3でこれを行う良い方法はありますか? データの 2 次元マトリックスをテーブルとしてレンダリングするためのこの素晴らしい例を見つけました CSV ファイルにリンクされたテーブルの作成。そのチュートリアルでは、このデータ構造の最も外側のレベルをテーブルとしてレンダリングすることができましたが、必要に応じて再帰的にレベルに移動する方法に行き詰まっています。現在、それらはテーブルに「オブジェクト」として表示されるだけです通常の文字列や数値とは異なる扱いをしていないからです。
また、私の質問に似たこの他の質問/回答を見つけましたが、再帰がどこでどのように発生しているかを確認し、ニーズに合わせてソリューションを再適応するのに十分なほどJavaScriptを理解していません: How do I process data that is D3で複数のレベルをネストしましたか? . D3 の JSON データ構造のようなネストされたツリーを再帰的または反復的に処理するためのチュートリアルへのアドバイスやポインタは大歓迎です!