2015-10-27 110 views
0

我已成功將Volley library集成到我的android studio項目中,並得到了以下回復。現在我需要從下面的響應中獲得特定的值。我需要GET (A, B, C, D, E,etc,..)價值觀和相關的男孩和女孩的價值觀。一旦我得到它,我需要列出像list view像下面的模型。如何從使用Android的Volley JSON響應數據中獲取特定值?

我期待:

----------------------------------------- 
    Title  Boys   Girls 
----------------------------------------- 
    A   1.5    3.5 
----------------------------------------- 
    B   1.5    3.5 
----------------------------------------- 

我下面的代碼:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //Displays Home Screen 
     setContentView(R.layout.activity_list); 

     //displaying TextView 
     txtDisplay = (TextView) findViewById(R.id.txtDisplay); 

     RequestQueue queue = Volley.newRequestQueue(this); 
     String url = "MYURL"; 

     JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() { 

      @Override 
      public void onResponse(JSONObject response) { 
       // TODO Auto-generated method stub 
       txtDisplay.setText("Response => "+response.toString()); 
       System.out.println("Response => "+response.toString()); 
       findViewById(R.id.progressBar1).setVisibility(View.GONE); 
      } 
     }, new Response.ErrorListener() { 

      @Override 
      public void onErrorResponse(VolleyError error) { 
       // TODO Auto-generated method stub 

      } 
     }); 

     queue.add(jsObjRequest); 
    } 

下面我的迴應:

{ 
   "response":{ 
      "A":{ 
         "boys":1.5, 
         "girls":"3.5", 
      }, 
      "B":{ 
         "boys":1.5, 
         "girls":"3.5", 
      }, 
      "E":{ 
         "boys":1.5, 
         "girls":"3.5", 
      } 
  }, 
   "schools":{ 
   }, 
   "distances":"172 KM" 
} 
+0

歡迎。你能在你的文章中描述什麼不起作用嗎? – wwkudu

+0

嗨。一切工作正常。我需要從上面的響應中獲得特定的值,並在列表視圖中列出。 – SteaveJobs

+0

好的。你試過什麼了?你卡在哪裏? – wwkudu

回答

2

使用下面的代碼來獲取值:

JsonObject json = response.get("response"); 
String a =json.get("A").toString(); 

同樣找到其他值;

例如;

當你

JsonObject json = response.get("response"); 

那麼JSON是:

{ 
     "A":{ 
     "boys":1.5, 
     "girls":"3.5", 
     }, 
     "B":{ 
     "boys":1.5, 
     "girls":"3.5", 
     }, 
     "E":{ 
     "boys":1.5, 
     "girls":"3.5", 
     } 
    } 

,如果你想從這個JSON獲取A/B/C使用

jsonA = json.get("A"); 


      { 
      "boys":1.5, 
      "girls":"3.5", 
      } 

如果你想從A 回收男孩,然後

String boys = jsonA.get("boys").toString(); 

同樣

json.get("B"); 

json.get("C");

+0

好吧,我會嘗試!謝謝!順便說一句,我需要列出所有A B C值。不僅是「A」。此外,如果我把上面的代碼,我得到錯誤! – SteaveJobs

+0

哪個錯誤。 並且同樣嘗試使用String b = json.get(「B」)。toString(); – Gaurav

+0

首先感謝你的回覆。我需要獲取所有JSONObject,而不僅僅是「A」。爲什麼因爲我會列出一些值到LIstView! – SteaveJobs

0

爲了得到從JSON對象的字符串,你可以使用下面的

JSONObject jObj=new JSONObject(response.toString()); 

A型的男生

String a = jObj.getJSONObject("response").getJSONObject("A").getString("boys").toString(); 

類型的女孩

String b = jObj.getJSONObject("response").getJSONObject("A").getString("girls").toString(); 

運行的follwoing線在一個循環中,並根據您的需要

+0

我不能提「A」和「B」和「C」,因爲可能它會高達Z.不提對象值,如何讓所有的值和上市了! – SteaveJobs

0

我得到了我自己,我所預期的將它們存儲。

JSONObject data = response.getJSONObject("response"); 
Iterator keys = data.keys(); 

while(keys.hasNext()) { 
     // loop to get the dynamic key 
     String currentDynamicKey = (String)keys.next(); 

     // get the value of the dynamic key 
     JSONObject currentDynamicValue = data.getJSONObject(currentDynamicKey); 

     // do something here with the value... 
    } 
相關問題