【问题标题】:Send more then one arraylist from servlet to Android application从 servlet 向 Android 应用程序发送多个数组列表
【发布时间】:2013-04-23 22:15:16
【问题描述】:

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

【问题讨论】:

    标签: android json servlets


    【解决方案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 字符串响应。并使用gsonJSON 字符串解析为POJO

    编辑:: 在 Android 端使用:

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

    【讨论】:

    • 感谢您的帮助....这是个好方法。但我是第一次使用 JSON,你能帮我如何将 JSON 解析回三个 ArrayList,就像它们在 servlet 中一样。或者任何链接。!!!
    • 感谢先生的热心帮助。:)
    • @aseem - 欢迎您。而且我只是像您一样的另一个程序员..不是“先生”...此外,如果答案对您有用,则可以将其标记为接受
    猜你喜欢
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    • 2013-10-15
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多