0

私は3つの配列リストを持っており、サーブレットからAndroidデバイスに送信する必要があります....ここで同様の問題を検索しましたが、3つの配列リストすべてを個別に取得する方法がわかりませんでした。サーブレット コードは次のとおりです。

.....
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サーブレットの json 文字列応答を表す を作成します。そして、文字列をgson解析して.JSONPOJO

EDIT :: Android側で使用:

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