2017-06-17 33 views
1

填充數組我有一個JSON結構如下面給出:如何從jsonArray動態在Java

{ 
    "success":1, 
    "message":"facture found", 
    "factures":[ 
     { 
     "mois_fact":"May17", 
     "nbr_fact":"1" 
     }, 
     { 
     "mois_fact":"Jun17", 
     "nbr_fact":"2" 
     }, 
     { 
     "mois_fact":"Jun16", 
     "nbr_fact":"1" 
     } 
    ] 
} 

我想創建兩個陣列,第一包含密鑰mois_fact的第二conains值和的nbr_fact價值觀,我想這樣的嘗試只用一個陣列absisse,我有這樣的結果:

value mois 1 
value mois 1 
value mois 1 
value mois 2 
value mois 2 
value mois 2 
value mois 1 
value mois 1 
value mois 1 

我嘗試:

String[] absisse = new String[3]; 
JSONArray factures= json.getJSONArray("factures"); 
for (int i = 0; i < factures.length(); i++) { 
JSONObject c = factures.getJSONObject(i); 
int nbr = c.getString("nbr_fact"); 
for(int z=0;z<absisse.length;z++){ 
absisse[z]=nbr; 
System.out.println("value mois "+absisse[z]); 
} 
} 

回答

1
  /* 
     * List of your nbr_fact objects 
     */ 
     List<String> nbr_fact_objects= new ArrayList<>(); 
     /* 
     * List of your mois_fact objects 
     */ 
     List<String> mois_fact_objects= new ArrayList<>(); 

     JSONArray factures= json.getJSONArray("factures"); 
     for (int i = 0; i < factures.length(); i++) { 
      JSONObject c = factures.getJSONObject(i); 

      String nbr = c.getString("nbr_fact"); 
      if (nbr != null) { 
       nbr_fact_objects.add(nbr); 
      } 
      String mois = c.getString("mois_fact"); 
      if (mois != null) { 
       mois_fact_objects.add(mois); 
      } 

     }