大家好朋友,我在程序的最后阶段遇到了这些问题。这是关于我的项目的一些描述:我在Ksoap的帮助下调用Web服务并从服务器获取JSON响应,我是解析了这个响应并将其存储到对应的arraylist.Till这里一切正常。现在问题从这里开始我想将所有这些AppID,AppName,AppTabID,Icon,Tabname存储到具有相同索引的相同键的多图中。如何我能做到吗?任何帮助都会受到高度赞赏!
private SoapPrimitive response;
ArrayList<String> AppID = new ArrayList<String>();
ArrayList<String> AppName = new ArrayList<String>();
ArrayList<String> AppTabId = new ArrayList<String>();
ArrayList<String> Icon = new ArrayList<String>();
ArrayList<Drawable> drawables=new ArrayList<Drawable>();
ArrayList<String> TabName = new ArrayList<String>();
<!--here are the Arraylist declaration->
public String parse(String a) throws Exception {
JSONArray jsonArry1 = new JSONArray(res); // create a json object from a string
// JSONArray jsonEvents = jsonObj.optJSONArray("AppItems"); // get all events as json objects from AppItems array
System.out.println("Length of array for AppItem tag is.. "+jsonArry1.length());
for(int i = 0; i < jsonArry1.length(); i++){
JSONObject event = jsonArry1.getJSONObject(i); // create a single event jsonObject
String AppID=event.getString("AppId");
System.out.println("AppId is "+AppID);
String AppName=event.getString("AppName");
System.out.println("AppName is "+AppName);
String AppTabId=event.getString("AppTabId");
System.out.println("AppTabId is "+AppTabId);
String Icon=event.getString("Icon");
System.out.println("Icon is "+Icon);
TabHtml=event.getString("TabHtml");
System.out.println("TabHtml = "+TabHtml);
}
System.out.println("return"+TabHtml);
return TabHtml;
}
上面的代码用于将所有内容保存到arraylist对象。从这里我想将所有这些不同的Arraylist设置为相同的MultiMap。我能实现吗?
答案 0 :(得分:1)
我只是定义一个AppData
容器类来保存与单个响应相关的所有数据,然后只将AppData
个对象放入多图中。
答案 1 :(得分:0)
在此链接(Java Map Interface)上搜索multimap
,可以直接实现多地图。
但是,根据我对您的问题的理解,您必须将所有列表放入List
,这将进入MultiMap
(这只是HashMap<String,ArrayList<ArrayList>>
)。
答案 2 :(得分:0)
将不同字段的所有这些不同列表作为响应,这不是一个很好的方法,但是当你已经实现了几乎完成时,我会进一步引导这种方法:
您可以使用地图到地图来解决此问题:
您需要遵循以下循环:
HashMap<Integer, HashMap<String, String> parsed=new HashMap<Integer, HashMap<String, String>();
for(int i=0;i<AppID.size();i++)
{
HashMap<String, String> keyValues= new HashMap<String, String>();
keyValues.put("id", AppName .get(0));
keyValues.put("id", AppTabId .get(0));
keyValues.put("id", Icon .get(0));
.....
parsed(new Integer(i), keyValues);
}