0

私は長い間探していましたが、解決策がありません。loop を使用して json オブジェクトから値を取得する必要があり、ネストされた値の数はランダムで、1 または 10 の場合があります。json は次のようになります。

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

私は多くの解決策を試しましたが、そのうちの1つはこれです:

 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 に答える