私は、ツリースタイルのJSONオブジェクト内のすべての分岐を追跡して、各分岐から1つの長い連結文字列を作成しようとしています。子の数とノードあたりの最大深さは不明なので、結果は任意の量に一般化する必要があります。可変深度の入れ子JSON値からの文字列を構築
私が働いているデータは、次のようになります。
{
"name":"root",
"children": [
{
"name":"foo",
"children":[
{
"name":"bar",
"children":[]
},
{
"name":"baz",
"children":[]
}
]
},
{
"name":"zoo",
"children": [
{
"name":"zar",
"children": [
{
"name":"zaz",
"children": []
}
]
}
]
}
]
}
私はthis jqplay exampleでチャンスを掴みます。
これは、子供が1人しかいない素朴なケースで動作することがわかります。私が最も混乱しているところは、複数の子供のシナリオで親を "リセット"する方法です。代わりに
root -> foo -> bar -> baz
を再帰の私は上記jqplayから
root -> foo -> bar
root -> foo -> baz
所望の出力たいと思います:私は純粋なJQソリューションを好むだろう
"root/foo/bar" "root/foo/baz" "root/zoo/zar/zaz"
を、一般的なbashのソリューションも希望作業。
*非常に*きれいに質問を! – hek2mgl