【发布时间】:2012-05-18 21:50:55
【问题描述】:
假设在这种情况下我有这样的表/列表 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(Camry, Corolla)
输出有点偏,我正在寻找这样的东西。如果没有孩子则没有孩子数组列表,并且属性是一个对象的一部分(哈希图)
{"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"}]}
【问题讨论】: