服务器返回的json数据key不是合法的标识符,是以数字打头或者是纯数字作为key,我百思不得其解;终于,找到了解决方法,写在这里防止自己忘记了;
{"1":"颜色","2":"尺码"}例如该json字符串
JSONObject jsonObjName = new JSONObject(specNameString);// 得到 {"1":"颜色","2":"尺码"}对象
// jsonObjName的key迭代器
Iterator<?> itName = jsonObjName.keys();// 得到 规格名称的key集合 {"1":"颜色","2":"尺码"}
while (itName.hasNext()) {// 遍历集合 也就是 1 2
ArrayList<Spec> list = new ArrayList<Spec>();
String specID = itName.next().toString();// 1 2 第一次获取到 1
String specName = jsonObjName.getString(specID);// 第一次得到1对应的值 颜色" 2 : 尺码
String specValueName = jsonObjValue.getString(specID);// 第一次得到1对应的值 : {"70":"03F中蓝色","71":"046橄榄绿"}
// 商品规格的条目
}
如此就可以得到对应所有的值了;其实就是利用了迭代器获取到key集合;遍历集合获取值,只是小白的我真心没想到.