我有一个需要帮助的问题,我的服务器上有以下json文件。现在作为一个临时解决方案,我创建了两个不同的视图,xmls,getter&按照这个Youtube教程设置setters,adapter。 我想知道是否有人可以指导或教我如何将两者结合在一起,因为我还在学习Android。
我正在尝试将apifrom和apito组合到1个listView中并相应地将它们安排到date_time
以下是来自服务器的JSON响应。
JSON响应
{
"apifrom": [
{
"id": 1,
"from_account": "Account2",
"to_account": "Cash",
"amount": "4394.0",
"date_time": "2016-02-26T09:17:51.518Z"
}
],
"apito": [
{
"id": 189,
"from_account": "Account1",
"to_account": "Account2",
"amount": "1200.0",
"date_time": "2016-03-24T08:19:23.846Z"
}
]
}
答案 0 :(得分:0)
JSONObject jsonRes = new JSONObject(jsonResponse);
JSONArray jsonArr1 = jsonRes.getJSONArray("apiTo");
JSONArray jsonArr2 = jsonRes.getJSONArray("apiFrom");
在此之后,您可以解析两个JSON数组,生成该对象,并将其传递给ArrayList
List<ItemObject> jsonObject = new ArrayList<ItemObject>();
//then Add object to arraylist
jsonObject.add(ParsedJsonObject);
要结合两个JSONArray,您可以尝试这样的事情:
private JSONArray concatArray(JSONArray arr1, JSONArray arr2)
throws JSONException {
JSONArray result = new JSONArray();
for (int i = 0; i < arr1.length(); i++) {
result.put(arr1.get(i));
}
for (int i = 0; i < arr2.length(); i++) {
result.put(arr2.get(i));
}
return result;
}
在ListView的适配器中设置它。希望这有帮助!
答案 1 :(得分:0)
定义您自己的Bean对象,您可以将任何不同的JSONArray放入您的bean中。之后,使用
ArrayList<YourBean>
作为ListView的数据源。
毕竟,JSONArray是数据模块,ListView是UI组件,您可以随时定义它们之间的关系。
答案 2 :(得分:0)
有两种方法可以做到这一点,你可以采用hashmap的arraylist并为每个新记录创建新的hashmap,也可以采用POJO类的arraylist。
public class POJOclas {
public String name,id;
}
像这样使用Arraylist
public ArrayList<POJOclas> mypojocls= new ArrayList<POJOclas>();
然后在arraylist中插入数据