2013-05-01 116 views
1

我有一個json對象,它被作爲字符串收集到一個函數中。
它包含陣列將json解析值存儲爲數組中的字符串

{ 「officer_name」: 「VM ARORA」} { 「officer_name」: 「博士CP REDDY。」} { 「officer_name」: 「ARTI CHOWDHARY」} { 「officer_name」:」 JAGDISH SINGH「}

這裏是Android代碼

public void func4(View view)throws Exception 
{ 
    AsyncHttpClient client = new AsyncHttpClient(); 
    RequestParams rp = new RequestParams(); 
    rp.put("pLat", "SELECT officer_name FROM iwmp_officer"); 

    client.post("http://10.0.2.2/conc5.php", rp, new AsyncHttpResponseHandler() { 
     public final void onSuccess(String response) { 
      // handle your response here 
      ArrayList<String> User_List = new ArrayList<String>(); 
      try { 
       /* here I need output in an array, 
       and only names not the "officer_name" */ 
      } catch (Exception e) { 
       tx.setText((CharSequence) e); 
      } 

      //tx.setText(User_List.get(1)); 
     } 

     @Override 
     public void onFailure(Throwable e, String response) { 
      // something went wrong 
      tx.setText(response); 
     }    
    }); 
} 

我上面顯示的是在字符串的輸出,需要把它的陣列。請幫忙!

+0

做一些研究JSON。 'JSONArray'會做你需要的。此外,你已經顯示在上面的JSON無效 – Naveen 2013-05-01 11:03:46

回答

1

如果你得到的輸出是這樣的。它的一個JSON數組。 您可以分析它作爲

JsonArray array=new JsonArray(outputJson); 

然後循環使用

for(JsonObject jsonObj in array){ 

String officerName=[jsonObj getString("officer_name"); 

} 

您可以使用類似上面的提到的代碼沒有語法正確此JSON陣列,但在概念上是正確的。你可以繼續這個。

1
List <String> ls = new ArrayList<String>(); 
JSONArray array = new JSONArray(response); 

for (int i = 0; i < array.length() ; i++) { 
    JSONObject obj = array.getJSONObject(Integer.toString(i)); 

    ls.add(obj.getString("officer_name")); 
} 

這會工作

+0

請注意其他人的問題,謝謝。 – yug 2013-05-01 11:58:59

+0

PLZ檢查我的其他問題,http://stackoverflow.com/questions/16353561/java-net-socketexceptionoperation-time-out-when-running-app-on-real-device – yug 2013-05-03 09:26:40

0
try { 
        JSONArray array= new JSONArray(response); 
        //array = new JSONArray(response); 
         for (int i = 0; i < array.length(); i++) { 
          //JSONObject obj = response.getJSONArray(i); 
          JSONObject jsonLineItem = (JSONObject) array.getJSONObject(i); 
          String name_fd = jsonLineItem.getString("officer_name"); 
          User_List.add(jsonLineItem.getString("officer_name")); 
          Log.d("JSONArray", name_fd+" " +name_fd); 

         } 


       } catch (JSONException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
        tx.setText(e.toString()); 
       }