0

My server is sending me JSON data in the following format:

{  
   "sub":"system",
   "created":1525944295496,
   "exp":1526001295,
   "user":{  
      "userId":"5af2e4f4dae7bb353ac9d9d2",
      "userFirstName":"Sastra",
      "userMiddleName":"Test",
      "userLastName":"Creations",
      "userAccountType":null,
      "userOrganizationName":null,
      "userEmail":"sastratestmail@gmail.com",
      "userPhone":"9841987654",
      "username":"system",
      "userGender":"male",
      "userAddress":null,
      "userPassword":null,
      "userRole":null,
      "userStatus":null,
      "userCreatedBy":null,
      "userDateCreated":null,
      "userDateLong":null,
      "userModifiedBy":null,
      "userDateModified":null,
      "userIsDisabled":null,
      "userTrackers":null,
      "userFeatures":null,
      "userCode":null,
      "token":null
   }
}

I am using following implementation but it's not working I can get the sub, created, exp data from above but not data inside from the "user" array. I try to use

public void onResponse(String response) {
                try {
                    jsonObject = new JSONObject(response);


                } catch (JSONException e) {
                    e.printStackTrace();
                }
                String token = null;
                try {
                    token = jsonObject.getString("result");
                    String decoded = DecodeToken.decoded(token);
                    JSONObject obj = new JSONObject(decoded);
                    String userId = obj.getString("sub");



                    Log.d("MyLogs", "" + decoded);
                    Log.d("MyLogs", "" + obj);

//                    Log.d("MyLogs", "" + sub);
                    Log.d("MyLogs", "" + userId);
// The following implementation is throwing error like
// {Above Json data} of type org.json.JSONObject cannot be converted to JSONArray

                    JSONArray jsonArray = new JSONArray(decoded);

// This gets you the first (zero indexed) element of the above array.
                    JSONObject jsonObject = jsonArray.getJSONObject(0);
                    String userId = jsonObject.getString("userId");
                    Log.d("GMap",""+userId);


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

What I need to do is get data from "user" array. How can I achieve this. ??

Logcat Data:

05-10 15:21:24.752 21709-21709/com.queendevelopers.apple.androidwebsocketexample D/MyLogs: {"sub":"system","created":1525944986850,"exp":1526001986,"user":{"userId":"5af2e4f4dae7bb353ac9d9d2","userFirstName":"Sastra","userMiddleName":"Test","userLastName":"Creations","userAccountType":null,"userOrganizationName":null,"userEmail":"sastratestmail@gmail.com","userPhone":"9841987654","username":"system","userGender":"male","userAddress":null,"userPassword":null,"userRole":null,"userStatus":null,"userCreatedBy":null,"userDateCreated":null,"userDateLong":null,"userModifiedBy":null,"userDateModified":null,"userIsDisabled":null,"userTrackers":null,"userFeatures":null,"userCode":null,"token":null}}
    {"sub":"system","created":1525944986850,"exp":1526001986,"user":{"userId":"5af2e4f4dae7bb353ac9d9d2","userFirstName":"Sastra","userMiddleName":"Test","userLastName":"Creations","userAccountType":null,"userOrganizationName":null,"userEmail":"sastratestmail@gmail.com","userPhone":"9841987654","username":"system","userGender":"male","userAddress":null,"userPassword":null,"userRole":null,"userStatus":null,"userCreatedBy":null,"userDateCreated":null,"userDateLong":null,"userModifiedBy":null,"userDateModified":null,"userIsDisabled":null,"userTrackers":null,"userFeatures":null,"userCode":null,"token":null}}
    system
05-10 15:21:24.754 21709-21709/com.queendevelopers.apple.androidwebsocketexample W/System.err: org.json.JSONException: Value {"sub":"system","created":1525944986850,"exp":1526001986,"user":{"userId":"5af2e4f4dae7bb353ac9d9d2","userFirstName":"Sastra","userMiddleName":"Test","userLastName":"Creations","userAccountType":null,"userOrganizationName":null,"userEmail":"sastratestmail@gmail.com","userPhone":"9841987654","username":"system","userGender":"male","userAddress":null,"userPassword":null,"userRole":null,"userStatus":null,"userCreatedBy":null,"userDateCreated":null,"userDateLong":null,"userModifiedBy":null,"userDateModified":null,"userIsDisabled":null,"userTrackers":null,"userFeatures":null,"userCode":null,"token":null}} of type org.json.JSONObject cannot be converted to JSONArray
05-10 15:21:24.756 21709-21709/com.queendevelopers.apple.androidwebsocketexample W/System.err:     at org.json.JSON.typeMismatch(JSON.java:111)
        at org.json.JSONArray.<init>(JSONArray.java:96)
        at org.json.JSONArray.<init>(JSONArray.java:108)
        at com.queendevelopers.apple.androidwebsocketexample.VolleyAuthentication$1.onResponse(VolleyAuthentication.java:82)
        at com.queendevelopers.apple.androidwebsocketexample.VolleyAuthentication$1.onResponse(VolleyAuthentication.java:56)
        at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:67)
        at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30)
05-10 15:21:24.757 21709-21709/com.queendevelopers.apple.androidwebsocketexample W/System.err:     at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:211)
        at android.app.ActivityThread.main(ActivityThread.java:5371)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)
05-10 15:21:24.843 21709-21709/com.queendevelopers.apple.androidwebsocketexample I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@394203db time:185869367
Apple Appala
  • 329
  • 4
  • 16

1 Answers1

1

org.json.JSONException: Value

JSONException Thrown to indicate a problem with the JSON API.

JSONArray jsonArray = new JSONArray(decoded);
JSONObject jsonObject = jsonArray.getJSONObject(0);

Problem coming from getJSONObject(0); And JSONArray . You should add getJSONObject("user").

JSONObject jsonDATA= response.getJSONObject("user");
IntelliJ Amiya
  • 74,896
  • 15
  • 165
  • 198