2017-08-01 129 views
-1

我有響應怎樣的JSONObject轉換爲JSonArray ......?

{ 

"p1":{ 
"date":"Sat, 29 Jul 2017 03:31:43 GMT", 
"plan_id":"5c4c6548-38cb-4dbb-b7a3-a3f260fb8532", 
"plan_name":"Ultra50", 
"pulse":1, 
"tarrif":1, 
"validity":30 
}, 
"p2":{ 
"date":"Sat, 29 Jul 2017 03:31:43 GMT", 
"plan_id":"5c4c6548-38cb-4dbb-b7a3-a3f260fb8532", 
"plan_name":"Ultra50", 
"pulse":1, 
"tarrif":1, 
"validity":30 
} 
} 

這裏我的代碼

Response.Listener<JSONObject> responseListener = new Response.Listener<JSONObject>() { 

     @Override 
     public void onResponse(JSONObject response) { 
      try { 

       JSONObject plan=response.getJSONObject("p1"); 
       Iterator x=plan.keys(); 
       JSONArray jsonElements=new JSONArray(); 
       while (x.hasNext()){ 
        String key=(String) x.next(); 
        jsonElements.put(plan.get(key)); 
        Log.e(TAG, "onResponse: "+key); 

       } 
       Log.d(TAG, "onResponse: "+jsonElements.toString()); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

如何P1,P2,P3轉換一個JsonArray?

+1

您的問題不清楚。 –

+0

我想在此列表視圖JSON響應......這可能嗎? @IntelliJAmiya –

+0

是的。爲什麼不.. –

回答

3

您應該使用ITERATOR

它用於逐個遍歷集合對象元素。

Iterator iteratorObj = response.keys(); 
     while (iteratorObj.hasNext()) 
     { 
      String getKEY = (String)iteratorObj.next(); 
      System.out.println("Key: " + Key + "------>" + getKEY); // p1,p2 
     } 
1
  1. 轉換對象爲字符串
  2. 取代首先{到[和最後}來]
  3. 字符串轉換爲JSONArray
String res = response.toString().trim(); 
     res = res.replaceFirst("\{","]"); 
     res = res.substring(0,res.length()-1) + "]"; 
     try { 
        JSONArray arr = new JSONArray(res.toString()); 
     }catch (JSONException j) 
     { 

     } 
+0

我知道,但我不能改變response.please給我一個解決方案在Android代碼... –

1
Iterator planKeys = response.keys(); 
{ 
    JSONArray jsonElements=new JSONArray(); 
    while(planKeys.hasNext()){ 
     String key = (String) planKeys.next(); 
     JSONObject plan = response.getJSONObject(key); 
     Iterator x=plan.keys(); 
     while (x.hasNext()){ 
      String key=(String) x.next(); 
      jsonElements.put(plan.get(key)); 
      Log.e(TAG, "onResponse: "+key); 

     } 
    } 
} 

JSONObject plan=response.getJSONObject("p1"); 
+0

爲什麼''JSONArray? –

+1

因爲你寫你的問題,你想JSONArray – Rahul

+0

'我想告訴P1,P2,P3對象值在list.' –