-1

I have Response

{

"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
}
}

Here my Code

 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();
            }

how to convert p1,p2,p3 in one JsonArray?

Phantômaxx
  • 37,901
  • 21
  • 84
  • 115

3 Answers3

3

You should use ITERATOR.

It is used to traverse a collection object elements one by one .

 Iterator  iteratorObj = response.keys();
        while (iteratorObj.hasNext())
        {
            String getKEY = (String)iteratorObj.next();
            System.out.println("Key: " + Key + "------>" + getKEY); // p1,p2
        }
IntelliJ Amiya
  • 74,896
  • 15
  • 165
  • 198
1
  1. convert object to string
  2. replace First { to [ and last } to ]
  3. convert string to 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)
        {

        }
IntelliJ Amiya
  • 74,896
  • 15
  • 165
  • 198
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");
Rahul
  • 1,380
  • 1
  • 10
  • 24