0

我有三个数组列表,我需要将它从 servlet 发送到 android 设备....我在这里搜索了类似的问题,但我不明白如何分别检索所有三个数组列表。这是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 端编码....或提供一些提示或链接。谢谢。

4

1 回答 1

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 端,创建POJO代表您的 servlet 的 json 字符串响应。并使用将字符串gson解析为.JSONPOJO

编辑 :: 在 Android 端使用:

Map<String, ArrayList<String>> map = new Gson().fromJson(finalJSON, Map.class);
于 2013-04-30T06:31:08.150 回答