需求 : 如题 , 最近项目中的某个接口 返回的JSON数据是不定的 动态的 , 这就比较坑了, 之前还真没遇到过 , 因为没法用框架去解析 (之前我都用的 Gsonformat) . 在网上找了下资料 , 好像只能使用 原生的JSONObject 才能操作 , 记录下来 以备不时之需 :
返回的数据 :
{ "code": 1,"msg": 1, "data": {"1": "法律","2": "工商注册", "3": "保险", "4": "资质代办", "5": "商标申请","6": "知识产权" "7":....} } , 其中data里的数据是不定的,随着后台的增加而增加 .
接下来直接上代码 :
// 首先你的创建一个集合用来存储data里的数据
List<String> datas = new ArrayList<String>();
try {
// result 就是请求接口返回的数据
JSONObject jsonObject = new JSONObject(result);
// 获取一个迭代器
Iterator<String> keys = jsonObject.keys();
while (keys.hasNext()) {
// 循环遍历里面的keys 根据keys获取key
String key = keys.next();
// 判断当key为data时 取出 data 转成对象
if (key.equals("data")){
JSONObject data = jsonObject.getJSONObject(key);
// 遍历data里的keys值
Iterator<String> keys1 = data.keys();
while (keys1.hasNext()){
String key1 = keys1.next();
// 根据key1获取对应的value
String str = data.getString(key1);
// 将获取得value值添加到 集合中 接下来你可以直接拿到data里的所有数据该干嘛干嘛
datas.add(str);
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}