JSON解析key是数字的情况
在返回的json数据里面,可能会包含有那种key是数字的情况,如下所示
{
"code":0,
"data":{
"id":"200",
"company_id":"10018",
"room_id":"6",
"anchor_id":"5",
"view_count":0,
"people_buy":0,
"title":"参加参考参考看",
"status":2,
"content_introduce":"",
"playback_address":"",
"start_time":1597801500000,
"actual_start_time":1597801982,
"actual_stop_time":0,
"goods":[
{
"goods_id":"588",
"title":"小酥肉半成品菜冷冻加热即食油炸小吃肉条鸡肉零食",
"price":69.9,
"created_at":1593661818,
"company_id":"13",
"live_scene_id":"200",
"sales_amount":0,
"sales_in_live":0,
"sales_numbers":0,
"people_buy":0,
"commission":"0.00",
"delflag":0
}
],
"promotions":{
"588":{
"id":"588",
"market_price":89.9,
"promotion":{
"type":0,
"rules":[
{
"type": 1,
"checked": 1
}
]
},
"promotion_price":"69.90",
"stock":10,
"min_sku_price":"69.90"
}
},
"goods_show": {
"111": "1",
"222": "2"
}
}
}
goods_show这个对象相当于一个map集合,里面都是key-value键值对的形式存在。那么在解析的时候需要注意这个goods_show的解析处理。
解析的方法
private List<GoodsShowModel> parseJsonMap(JSONObject goods_show) {
List<GoodsShowModel> showModels = new ArrayList<>();
Set<String> keys = goods_show.keySet();
Iterator<String> keyIt = keys.iterator();
while (keyIt.hasNext()){
String key = keyIt.next();
String value = (String) goods_show.get(key);
GoodsShowModel model = new GoodsShowModel();
model.setGoodS_id(key);
model.setType(value);
showModels.add(model);
LogUtils.d("LiveSearchGoodsPopWindow key = "+key + " value = "+value);
}
LogUtils.d("LiveSearchGoodsPopWindow list = "+showModels.toString());
return showModels;
}