如有不对的地方,望各位小哥哥、小姐姐指点,小女子在此谢过(*^__^*) 嘻嘻……
有时候在做项目的过程中,后台会给我们返回以下这样的数据结构,列如我这里是一个交易记录的一个数据结构(我也不明白为什么一定要这样返回,在我看来这就是不规范的一种写法),但是我也不能说些什么,
数据结构如下,可以看到2019这个key是动态的可以改变的,所以这个就得先动态的获得这个2019,然后通过这个2019再去解析里面的数组
"data": {
"2019-05": [{
"id": "9",
"user_id": "oKICp1Ef2q1fIZnECOAltQxz56jQ",
"trade_num": "RVRFWEtPb0tJQ3AxRWYycTFmSVpuRUNPQWx0UXh6NTZqUXwxMHwxNTU4OTM5MDQ0",
"product_id": "10",
"product_name": "稠银大额存单第2期",
"bank_name": "稠州银行",
"amount": "10000",
"trade_time": "0",
"trade_type": "1",
"trade_status": "0",
"create_tm": "2019-05-27 02:37:24"
}],
"2019-04": [{
"id": "8",
"user_id": "oKICp1Ef2q1fIZnECOAltQxz56jQ",
"trade_num": "V3FubFZ3b0tJQ3AxRWYycTFmSVpuRUNPQWx0UXh6NTZqUXwxMHwxNTU4OTMwMTUx",
"product_id": "10",
"product_name": "稠银大额存单第2期",
"bank_name": "稠州银行",
"amount": "10000",
"trade_time": "0",
"trade_type": "0",
"trade_status": "0",
"create_tm": "2019-04-27 11:31:54"
}]
}
然后看下页面展示:
我直接贴代码吧,
JSONObject jsonObject = null;
JSONObject mapJSON = null;
try {
jsonObject = new JSONObject(apiResultData.getData().toString());
mapJSON = jsonObject.getJSONObject("data");
//动态获取key值
Iterator<String> iterator = mapJSON.keys();
while (iterator.hasNext()) {
String key = iterator.next();
TransactionRecordEntitys keyEntitys = new TransactionRecordEntitys();
keyEntitys.setTime(key);
keyEntitys.setItemType(0);
recordListData.add(keyEntitys);
JSONArray jsonArray = mapJSON.getJSONArray(key);
//遍历这个json格式的数组
for (int i = 0; i < jsonArray.length(); i++) {
String string = jsonArray.getString(i);
gson = new Gson();
TransactionRecordEntitys recordEntitys = gson.fromJson(string, TransactionRecordEntitys.class);
recordEntitys.setItemType(1);
recordListData.add(recordEntitys);
}
}
} catch (JSONException e) {
e.printStackTrace();
recyclerview.setVisibility(View.GONE);
txt_tips.setVisibility(View.VISIBLE);
txt_tips.setText("数据解析失败");
}
TransactionRecordEntitys