user8356857
user8356857

Reputation:

Handle array data from server android

in my application data coming from a server in the form of an array, enter image description here

i cant handle the data i will share my code please help me.

 JSONObject jsonObject = new JSONObject(response);
  String name = jsonObject.getString("status");
                    String name1 = name.trim();
 if (name1.equals("success")) {

                        Toast.makeText(getApplicationContext(),"inside",Toast.LENGTH_LONG).show();
                        try {


                            JSONArray array = jsonObject.getJSONArray("data");

                            for (int i = 0; i < array.length(); i++) {


                                jsonObject = array.getJSONObject(i);


                                s_key = jsonObject.getString("initKey");
                                s_iv = jsonObject.getString("initIv");
                                sec_url = jsonObject.getString("url");
                                s_init_hash = jsonObject.getString("initHash");


                            }
                        } catch (JSONException e) {
                            e.printStackTrace();


        }

Upvotes: 3

Views: 283

Answers (6)

AskNilesh
AskNilesh

Reputation: 69689

You Response is JSONObject not in JSONArray check it

FYI

{ } brackets means JSONObject

[ ] brackets means JSONArray

Parse your json like this

    JSONObject jsonObject = new JSONObject(response);
    String name = jsonObject.getString("status");
    String name1 = name.trim();
    if (name1.equals("success")) {

        Toast.makeText(getApplicationContext(), "inside", Toast.LENGTH_LONG).show();
        try {


            JSONObject jsonObjectData = jsonObject.getJSONObject("data");
            s_key = data.getString("initKey");
            s_iv = data.getString("initIv");
            sec_url = data.getString("url");
            s_init_hash = data.getString("initHash");


        } catch (JSONException e) {
            e.printStackTrace();


        }


    }

Upvotes: 0

Murali Ganesan
Murali Ganesan

Reputation: 2955

When you are working with JSON data in Android, you would use JSONArray to parse JSON which starts with the array brackets. Arrays in JSON are used to organize a collection of related items (Which could be JSON objects). For example:

[{"name":"item 1"},{"name": "item2} ]

On the other hand, you would use JSONObject when dealing with JSON that begins with curly braces. A JSON object is typically used to contain key/value pairs related to one item. For example:

{"name": "item1", "description":"a JSON object"}

 JSONObject jsonObject = new JSONObject(response);
  String name = jsonObject.getString("status");
                    String name1 = name.trim();
 if (name1.equals("success")) {

                        Toast.makeText(getApplicationContext(),"inside",Toast.LENGTH_LONG).show();
                        try {
                              JSONObject data = jsonObject. getJSONObject("data");
        s_key = data.getString("initKey");
        s_iv = data.getString("initIv");
        sec_url = data.getString("url");
        s_init_hash = data.getString("initHash");
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();


        }

Upvotes: 0

Nj_96
Nj_96

Reputation: 116

response { "status": "success", "data": {

    "initKey": "abc",
    "initHash": "cde",
    "initIv": "efg",
    "versionNo": "123 ",
    "url": "https://www.youtube.com"


}

}

Code

 try {

            JSONObject outerJsonObject=new JSONObject(response);
            String status=outerJsonObject.getString("status");
            if(status.equals("success"))
            {

                JSONObject innerJsonObjectData=outerJsonObject.getJSONObject("data");
                String initKey =innerJsonObjectData.getString("initKey");
                String initHash =innerJsonObjectData.getString("initHash");
                String initIv =innerJsonObjectData.getString("initIv");
                String versionNo =innerJsonObjectData.getString("versionNo");
            }

            } catch (JSONException e) {
            e.printStackTrace();
        }

Comments

 /*

            {
                //outerJsonObject

                    "status":"success",

                    "data":                // innerJsonObjectData
                    {

                           "initKey":"abc",
                            "initHash": "cde",
                            "initIv": "efg",
                            "versionNo": "123 ",
                            "url": "https://www.youtube.com"

                    }


            }

*/

Upvotes: 0

user8356857
user8356857

Reputation:

 JSONObject jsonObject = null;
                try {
                    jsonObject = new JSONObject(response);
                    String name = jsonObject.getString("status");
                    String name1 = name.trim();
                    if (name1.equals("success")) {



                        JSONObject jsonObjectData = jsonObject.getJSONObject("data");
                        s_key = jsonObjectData.getString("initKey");
                        s_iv = jsonObjectData.getString("initIv");
                        sec_url = jsonObjectData.getString("url");
                        s_init_hash = jsonObjectData.getString("initHash");





                    }

                } catch (JSONException e) {
                    e.printStackTrace();
                }

Upvotes: 0

Elsunhoty
Elsunhoty

Reputation: 1627

data Is not Json Array cause it start with {} it`s Json Object

Json Array start with []

So you need To use

SONObject  jsonObjectData = jsonObject .getJSONObject(i);

Upvotes: 0

MJM
MJM

Reputation: 5301

There is no JSONArray

 JSONObject jsonObject = new JSONObject(response);
      String name = jsonObject.getString("status");
                        String name1 = name.trim();
     if (name1.equals("success")) {

                            Toast.makeText(getApplicationContext(),"inside",Toast.LENGTH_LONG).show();
                            try {
                                   JSONObject  jsonObjectData = jsonObject .getJSONObject(i);
                                    s_key = jsonObjectData.getString("initKey");
                                    s_iv = jsonObjectData.getString("initIv");
                                    sec_url = jsonObjectData.getString("url");
                                    s_init_hash = jsonObjectData.getString("initHash");
                                }
                            } catch (JSONException e) {
                                e.printStackTrace();


            }

Upvotes: 1

Related Questions