我有三个数组列表,我需要将它从servlet发送到Android设备....我已经搜索了类似的问题here但我无法理解我如何单独检索所有三个数组列表。这是servlet代码:
.....
ArrayList<String> List1 = new ArrayList<String>();
ArrayList<String> List2 = new ArrayList<String>();
ArrayList<String> List3 = new ArrayList<String>();
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
list1.add("item1.1");
list1.add("item1.2");
list1.add("item1.3");
list2.add("item2.1");
list2.add("item2.2");
list2.add("item2.3");
list3.add("item3.1");
list3.add("item3.2");
list3.add("item3.3");
String json1 = new Gson().toJson(list1);
String json2 = new Gson().toJson(list2);
String json3 = new Gson().toJson(list3);
res.setContentType("application/json");
res.setCharacterEncoding("UTF-8");
res.getWriter().write(json1);
res.getWriter().write(json2);
res.getWriter().write(json3);
}
现在请帮我展示android端编码....或者给出一些提示或链接。 感谢。
答案 0 :(得分:1)
不是将每个List
转换为JSON
,而是创建一个Map
键作为字符串,并将值作为项目列表创建如下:
Map<String, ArrayList<String>> listMap = new HashMap<String, ArrayList<String>>();
listMap.put("json1", list1);
listMap.put("json2", list2);
listMap.put("json3", list3);
String finalJSON = new Gson().toJson(listMap);
生成的JSON将是:
{
"json1": [
"item1.1",
"item1.2",
"item1.3"
],
"json2": [
"item2.1",
"item2.2",
"item2.3"
],
"json3": [
"item3.1",
"item3.2",
"item3.3"
]
}
现在在Android端,创建表示servlet的json字符串响应的POJO
。并使用gson
将JSON
字符串解析为POJO
。
编辑:: 在Android端使用:
Map<String, ArrayList<String>> map = new Gson().fromJson(finalJSON, Map.class);