この場合、このn = 3のようなテーブル/リストがあるとしましょう。ただし、nは無制限にすることができます。
groupid answerid1 answerid2 answerid(n)
1 3 6 8
1 3 6 9
1 4 7
2 5
そして、javaを使用してこのような親/子ツリーのjson出力を作成したいと思います(私はGSONを使用しています)
{
data: [
{
groupid: 1,
children: [
{
answerid1: 1,
children: [
{
answerid2:3,
children: [
{
answerid3:6,
children: [
{answerid4: 8},
{answerid4: 9}
]
}
}, {
answerid2: 4,
children: [
{answerid3:7}
]
}
]
},
{
groupid1: 2,
children: [
{ answerid2: 5}
]
}
]
}
そうするためのコード/ステップは何でしょうか。私はたくさんのタグを調べましたが、ほとんどの人は出力を出力しており、APIへの書き込みを解析するためにGSONのハッシュマップ/ArrayListを再帰的に作成していません。各IDには、json出力に含める必要のある他のデータが関連付けられているもう1つのポイントがあります。たとえば、{groupid:1}の代わりにこの{groupid:1、text=toyota}が必要になります。
私はSASのバックグラウンドを持っているので、Javaはかなり新しいので、どんな助けでも大歓迎です。
私はこのようなデータを取得します(リストの単なるマトリックス)トヨタ、ガス、コンパクト、カローラ
必要に応じて、データを2つのテーブルに再フォーマットできます
parentId parText answerId
answerIdレベルanswerTextidanswerText
次に、それをツリーにする必要があります(JSONが親/子で表示するようなネストされた出力-ファイルシステムディレクトリを作成した場合と同じように)
私がやりたいもう1つの考えは、各車がvarialbeとしてマイレージを持っていることです({answerid3:4、text = Corolla、mileage = 38}。また、ツリーをトラバースする場合は、ブランチの平均マイルを与えます。たとえば、トヨタ、ガス、コンパクトの支店では、走行距離は平均になります(カムリ、カローラ)
出力が少しずれているので、このようなものを探しています。子がない場合は子の配列リストはなく、属性は1つのオブジェクトの一部です(ハッシュマップ)
{"data":[{"id":1,"children":
[{"id": 2,"children":
[{"id": 3 ,"children":
[{"id": 4,"name":"Prius"}],"name":"Compact"}],"name":"Hybrid"},
{"id":5,"children":
[{"id":3,"children":
[{"id":7,"MPG":38, "name":"Corolla"},
{"id":8,"MPG":28,"name":"Camry"}],"name":"Compact"}],"name":"Gas"}],"name":"Toyota"},
{"id":9, "children":
[{"id":10,"children":
[{"id":3 ,"children":
[{"id":11 ,"name":"Civic"}],"name":"Compact"}],"name":"Gas"}],"name":"Honda"}]}