2017-03-17 31 views
1

我有一個包含String數組(選民列表)的JSON對象。Android Volley - 在JSON中檢查數組以獲取值

這裏是JSON陣列

http://jsonviewer.stack.hu/#http://www.saveme.ie/api/savings/

我的邏輯是這樣

獲得數組轉換成一個JSONObject。

將JSON中的數組分配給列表並檢查值的列表。

String singleSaving = ""; 
ArrayList upVoters = new ArrayList(); 

// Loop through all and get single ID 
for (int i = 0; i < response.length(); i++) { 
    JSONObject obj = null; 
    try { 
     obj = response.getJSONObject(i); 
     _id2 = obj.getString("_id"); 

     if (_id2.equals(_id)) { 
      singleSaving = _id2; 

      // Id like to assign the upVoters array to       
      // the upVoters ArrayList here 

     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 
+0

你嘗試過什麼?以及你面臨的挑戰是什麼你試過 –

+0

似乎沒有直接的方式將JSON中的數組分配給我可以找到的本地數組。我可以使用getString輕鬆地分配一個字符串,但不知道如何獲得一個數組以使用contains() – ChrisM

+0

您是否嘗試過使用jackson 2來直接分配json響應以將對象轉換爲/從JSON? – HaroldSer

回答

1

你只需要遍歷upVotersJSONArray,並填補了ArrayList

String singleSaving = ""; 
ArrayList upVoters = new ArrayList(); 

// Loop through all and get single ID 
for (int i = 0; i < response.length(); i++) { 
    JSONObject obj = null; 
    try { 
     obj = response.getJSONObject(i); 
     _id2 = obj.getString("_id"); 

     if (_id2.equals(_id)) { 
      singleSaving = _id2; 

      // Get upVoters list as JSONArray 
      JSONArray upVotersJsonArray = obj.getJSONArray("upVoters"); 
      for(int j=0; j<upVotersJsonArray.length(); j++) { 
       // Fill ArrayList with data from JSON 
       upVoters.add(upVotersJsonArray.getString(j)); 
      }  
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 
相關問題