从servlet向Android应用程序发送多个arraylist

时间:2013-04-30 04:48:29

标签: android json servlets

我有三个数组列表,我需要将它从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端编码....或者给出一些提示或链接。 感谢。

1 个答案:

答案 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。并使用gsonJSON字符串解析为POJO

编辑:: 在Android端使用:

Map<String, ArrayList<String>> map = new Gson().fromJson(finalJSON, Map.class);