0

我已经搜索了很长时间,但没有任何解决方案对我有用。我必须使用一些循环从 json 对象中检索值,嵌套值的数量是随机的,可以是 1 也可以是 10。json 看起来像这样:

{
   "keyInfo":[
      {
         "name":"ipek",
         "key":"1221"
      },
      {
         "name":"ipek",
         "key":"1221"
      }
   ],
   "terminalInfo":{
      "dateExp":"2-2-2",
      "deviceId":"1222",
      "tid":"122"
   }
}

我尝试了很多解决方案,其中之一是:

 JSONObject jsonObject =new JSONObject(jsonString);
 JSONObject jsonChildObject = (JSONObject)jsonObject.get("keyInfo");
 Iterator iterator  = jsonChildObject.keys();
 String key = null;
 while(iterator.hasNext()){
     key = (String)iterator.next();
     System.out.println("inval value: "
         + ((JSONObject)jsonChildObject.get(key)).get("inval"));
 }

但他们都不适合我,请帮忙。提前致谢。

4

1 回答 1

0

您正在尝试将数组用作地图。jsonChildObject实际上是一个JSONArray. 它没有钥匙;例如,您可以多次使用相同的内容{"name":"ipek","key":"1221"}。如果您知道key这个数组中的项目是唯一的,您可以尝试根据需要构建一个 HashMap,但您拥有的结构绝对是一个数组。

于 2015-08-09T14:34:44.077 回答