Android 动态获取json字符串的key

如有不对的地方,望各位小哥哥、小姐姐指点,小女子在此谢过(*^__^*) 嘻嘻……

 

有时候在做项目的过程中,后台会给我们返回以下这样的数据结构,列如我这里是一个交易记录的一个数据结构(我也不明白为什么一定要这样返回,在我看来这就是不规范的一种写法),但是我也不能说些什么,

 

数据结构如下,可以看到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

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值