使用循环

时间:2015-08-09 13:22:50

标签: java json object json-simple

我一直在寻找,但没有任何解决方案适合我。 我必须使用一些循环从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"));
 }

但是他们都没有为我工作请求帮助。 谢谢。

1 个答案:

答案 0 :(得分:0)

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