2017-08-01 125 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.' –