2013-04-30 2 views
0

У меня есть список трех массивов, и мне нужно отправить его с сервлета на устройство Android. Я искал аналогичную проблему here, но я не мог понять, как получить все три списка массивов. Вот сервлет код:Отправьте более одного арраиста из сервлета в приложение Android

..... 
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); 
} 

Теперь, пожалуйста, помогите мне, чтобы показать андроид кодирование на стороне .... или дать некоторую подсказку или ссылку. Спасибо.

ответ

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 проанализируйте строку JSON в POJO.

EDIT :: Об использовании Android стороне:

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

Спасибо за помощь .... это хороший способ. Но я в первый раз использую JSON, можете ли вы, пожалуйста, помочь мне разобрать JSON обратно на три ArrayList, поскольку они были в сервлете. Или любая ссылка пожалуйста. !!! – aseem

+0

См. EDIT в ответе – hemu

+0

Спасибо, сэр за вашу любезную помощь. :) – aseem

Смежные вопросы