我一直在寻找,但没有任何解决方案适合我。 我必须使用一些循环从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"));
}
但是他们都没有为我工作请求帮助。 谢谢。
答案 0 :(得分:0)
您正在尝试将数组用作地图。 jsonChildObject
实际上是JSONArray
。它没有钥匙;例如,您可以多次使用相同的{"name":"ipek","key":"1221"}
。如果您知道key
在此数组中的项目中是唯一的,则可以根据需要尝试构建HashMap,但您拥有的结构绝对是一个数组。