如何将数据格式化为特定的JSON格式
这里需要一些逻辑方面的帮助——我正在尝试以一种特定的方式(父子关系/树格式)格式化数据,并将其转换为json(我正在使用gson)。但我似乎不能把它弄对。下面是我能制作的最接近的格式,下面是我想要输出的格式。这需要作为哈希表返回 我遇到的一个问题是在“children”后面加上[]括号。括号位于第一个“children”之后,但稍后不会显示。我猜是因为[]括号只在我使用HashSet时出现。所以,也许将hashset放在hashset中可以解决这个问题如何将数据格式化为特定的JSON格式,json,hashtable,gson,Json,Hashtable,Gson,这里需要一些逻辑方面的帮助——我正在尝试以一种特定的方式(父子关系/树格式)格式化数据,并将其转换为json(我正在使用gson)。但我似乎不能把它弄对。下面是我能制作的最接近的格式,下面是我想要输出的格式。这需要作为哈希表返回 我遇到的一个问题是在“children”后面加上[]括号。括号位于第一个“children”之后,但稍后不会显示。我猜是因为[]括号只在我使用HashSet时出现。所以,也许将hashset放在hashset中可以解决这个问题 我的代码如下: public class
我的代码如下:
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":"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"},
]
},
]
}
]
}我想你想要这样的东西
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.gson.Gson;
public class DendrogramPlaySheet {
public static void main(String[] args){
Map m = new HashMap();
m.put("name", "food");
Map m3 = new HashMap();
m3.put("name", "peperoni");
Map m4 = new HashMap();
m4.put("name", "cheese");
List list2 = new ArrayList();
list2.add(m3);
list2.add(m4);
Map m2 = new HashMap();
m2.put("name", "pizza");
m2.put("children", list2);
List list = new ArrayList();
list.add(m2);
m.put("children", list);
Gson gson = new Gson();
System.out.println(gson.toJson(m));
}
}
产生
{
"name":"food",
"children":[
{
"name":"pizza",
"children":[
{
"name":"peperoni"
},
{
"name":"cheese"
}
]
}
]
}
您可以看到,“[”是JSON列表/数组的开头
{
"name":"food",
"children":[
{
"name":"pizza",
"children":[
{
"name":"peperoni"
},
{
"name":"cheese"
}
]
}
]
}