2017-09-18 20 views
-2

//外部jsonArrayファイルjsonArrayからキーを取得する方法は?

{ 

    "items": [ 
     { 
      "index": 10, 
      "index_start_at": 56, 
      "integer": 12, 
      "float": 16.8248, 
      "Firstname": "Natalie", 
      "surname": "MacDonald", 
      "fullname": "Hilda Rich", 
      "email": "[email protected]", 
      "Zip": 30988 
     }, 
     { 
      "index": 2, 
      "index_start_at": 57, 
      "integer": 5, 
      "float": 13.8932, 
      "Firstname": "Jeff", 
      "surname": "Miles", 
      "fullname": "Meredith Wall", 
      "email": "[email protected]", 
      "Zip": 47888 
     }, 
     { 
      "index": 3, 
      "index_start_at": 58, 
      "integer": 14, 
      "float": 10.1125, 
      "Firstname": "Mary", 
      "surname": "Huff", 
      "fullname": "George Schroeder", 
      "email": "[email protected]", 
      "Zip": 3985 
     } 
    ] 

} 

方法jsonArray以上、いくつかの配列のものを保存するから鍵を取得し、その後、Javaでこれらのキーの値をランダム? 編集CODE ...私はこのようにそれを行うにしようとしています

 import java.io.FileNotFoundException; 
     import java.io.FileReader; 
     import java.io.IOException; 
     import java.util.Iterator; 

     import org.json.JSONException; 
     import org.json.JSONObject; 
     import org.json.simple.JSONArray; 
     import org.json.simple.parser.JSONParser; 
     import org.json.simple.parser.ParseException; 




     public class JSONReadFromFile { 


      public static void main(String[] args) throws JSONException { 

       JSONParser parser = new JSONParser(); 


       String jsonString=null; 

       Object Obj; 

       //JSONObject element; 

       try { 

        Obj = parser.parse(new FileReader("jsonArray.json")); 
        System.out.println(Obj); 
        jsonString=Obj.toString(); 

        JSONObject object = new JSONObject(jsonString); //jsonString = String from the file 
        org.json.JSONArray array = object.getJSONArray("items"); 
        Iterator<Object> iterator = array.iterator(); 
        while(iterator.hasNext()){ 
         JSONObject jsonObject = (JSONObject) iterator.next(); 
         for(String key : jsonObject.keySet()){ 
          System.out.println(key + ":" + jsonObject.get(key)); 
         } 
        } 

     } 

} 
     catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } catch (ParseException e2) { 
      // TODO Auto-generated catch block 
      e2.printStackTrace(); 
     } 

    } 
} 

..やって、この正しい方法はあります?まず、jsonファイルを読み込み、そこからキーを抽出しています。 ここで上記のコードでは、私は2つのエラーを取得しています----メソッド反復子がタイプに定義されていないjsonArray & &方法のキーセットは、タイプに定義されていないjsonArray

+0

期待される出力は何ですか? jsonArrayの –

+0

キーとそれに対応する値。 – ASM

+1

[keySet()を使用してJSONObjectからキーを抽出する]の可能な複製(https://stackoverflow.com/questions/19195492/extracting-keys-from-a-jsonobject-using-keyset) –

答えて

0

次の2つのループ、例えばでそれを行うことができます。

JSONObject object = new JSONObject(jsonString); //jsonString = String from the file 
JSONArray array = object.getJSONArray("items"); 
Iterator<Object> iterator = array.iterator(); 
while(iterator.hasNext()){ 
    JSONObject jsonObject = (JSONObject) iterator.next(); 
    for(String key : jsonObject.keySet()){ 
     System.out.println(key + ":" + jsonObject.get(key)); 
    } 
} 

更新

ここでは、すべての輸入品との完全な例です:

輸入java.util.Iteraトル;

import org.json.JSONArray; import org.json.JSONObject;

public class Test { 
    public static void main(String[] args) { 
     JSONObject object = new JSONObject("{\"items\":[{\"index\":10}]}"); 
     JSONArray array = object.getJSONArray("items"); 
     Iterator<Object> iterator = array.iterator(); 
     while (iterator.hasNext()) { 
      JSONObject jsonObject = (JSONObject) iterator.next(); 
      for (String key : jsonObject.keySet()) { 
       System.out.println(key + ":" + jsonObject.get(key)); 
      } 
     } 
    } 
} 
+0

と対応するキーの値を取得し、そのたびにキーの値をランダム化する方法。 – ASM

+0

'jsonObject.get(key)'は、特定のキーの値を返します。ランダム化は、ランダム化する対象/方法によって異なります。 –

+0

私は1から1000の範囲で値をランダム化します。 – ASM

関連する問題