【发布时间】:2014-02-21 23:55:11
【问题描述】:
这里需要一些逻辑方面的帮助——我正在尝试以特定方式(父子关系/树格式)格式化我的数据并转换为 json(我正在使用 gson)。但我似乎无法正确处理。下面是我能够制作的最接近的格式,在它下面有我希望它输出的格式。这需要作为哈希表返回。
我遇到的一个问题是将 [] 括号放在“孩子”之后。括号在第一个“孩子”之后出现,但后来没有出现。我的猜测是因为 [] 括号仅在我使用 HashSet 时出现。那么,也许将哈希集放入哈希集中可以解决这个特定问题?
我的代码在这里:
public class DendrogramPlaySheet extends BrowserPlaySheet {
public Hashtable processQueryData() {
HashSet food = new HashSet();
String[] var = wrapper.getVariables();
for (int i=0; i<list.size(); i++){
LinkedHashMap foodType = new LinkedHashMap();
LinkedHashMap foodItem = new LinkedHashMap();
LinkedHashMap foodFlavor = new LinkedHashMap();
//this is a table of data that we get from a query
Object[] listElement = list.get(i);
//taking columns and putting them into the hashmap
foodType.put("name", listElement[0]);
foodItem.put("name", listElement[1]);
foodFlavor.put("name", listElement[2]);
foodItem.put("children", foodFlavor);
foodType.put("children", foodItem);
food.add(foodType);
}
Hashtable allHash = new Hashtable();
allHash.put("name", "Food");
allHash.put("children", food);
return allHash;
}
}
我的代码生成的内容:
{
"name":"Food",
"children":[
{
"name":"Italian",
"children":{
"name":"Pizza",
"children":{
"name":"Cheese"
}
}
},
{
"name":"American",
"children":{
"name":"Hamburgers",
"children":{
"name":"Plain"
}
}
},
{
"name":"Italian",
"children":{
"name":"Pasta",
"children":{
"name":"Pesto"
}
}
},
{
"name":"Italian",
"children":{
"name":"Cannoli",
"children":{
"name":"Plain"
}
}
},
{
"name":"Italian",
"children":{
"name":"Pizza",
"children":{
"name":"Pepperoni"
}
}
},
{
"name":"Mexican",
"children":{
"name":"Burritos",
"children":{
"name":"Beef"
}
}
}
]
}
我要输出的内容:
{
"name":"Food",
"children":[
{
"name":"Italian",
"children":[
{
"name":"Pizza",
"children":[
{"name":"Pepperoni"},
{"name":"Cheese"},
]
},
{
"name":"Cannoli",
"children":[
{"name":"Plain"},
]
},
{
"name":"Pasta",
"children":[
{"name":"Pesto"},
]
},
]
},
{
"name":"American",
"children":[
{
"name":"Hamburgers",
"children":[
{"name":"Plain"},
]
},
]
},
{
"name":"Mexican",
"children":[
{
"name":"Burritos",
"children":[
{"name":"Beef"},
]
},
]
}
]
}
【问题讨论】: