假设在这种情况下我有这样的表/列表 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}
]
}
]
}
这样做的代码/步骤是什么。我查看了很多标签,但大多数人都在打印输出,而不是递归地为 GSON 构建一个 hashmap/ArrayList 来解析并写入 API。另外一点,每个 id 都有与之关联的其他数据,这些数据必须包含在 json 输出中。例如,而不是 {groupid:1} 需要这个 {groupid:1, text=toyota}。
非常感谢任何帮助,因为我来自 SAS 背景,所以我对 java 还很陌生。
我得到这样的数据(只是一个列表矩阵)丰田,天然气,紧凑型,卡罗拉
如果需要,我可以将数据重新格式化为两个表
parentId parText answerId
answerId 级别 answerTextid answerText
然后我需要把它做成一棵树(嵌套输出像 JSON 显示父/子 - 就像你正在创建一个文件系统目录一样)
我想做的另一件事是每辆车都有里程作为变量({answerid3:4,text = Corolla,mileage = 38}。但如果我遍历树,给分支的平均里程。就像说在丰田、Gas、Compact 分公司,行驶里程为 avg(凯美瑞、卡罗拉)
输出有点偏,我正在寻找这样的东西。如果没有孩子则没有孩子数组列表,并且属性是一个对象的一部分(哈希图)
{"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"}]}