harsh thakur harsh thakur - 3 months ago 10
JSON Question

How to parse json data using volley

I am using volley lib. at every activities in my project my first login page has done using volley JSON Object Request method(POST) and next activities could not parsed.

Json data of the main screen:

{
"err-code": 5,
"job_details": [
{
"job_id": 33,
"job_no": "ES53-AF",
"contract_manager_id": 4,
"company_name": "A Construction Ltd",
"time_spent": 4.5
},
{
"job_id": 5,
"job_no": "ES1465-AF",
"contract_manager_id": 4,
"company_name": "Trios Property",
"job_description": "Carry out the rewire of ",
"time_spent": 26.5
},
{
"job_id": 81,
"job_no": "ES101-AF",
"contract_manager_id": 4,
"company_name": "Arden Construction Ltd",
"job_description": "Carry out works as per esti 3AQ",
"time_spent": 2.5
},
}]
}


Code:

private void getDataNew()
{
String url = "http://103.5.103.8:067/ivservices/Webservices/joblisting";
HashMap<String, String> user = session.getUserDetails();
String token = user.get(SessionManager.KEY_TOKEN);
Log.e("token check kro", token);
final String role = user.get(SessionManager.KEY_ROLE);
Log.e("role", role);
String user_id = user.get(SessionManager.KEY_USERID);
// Log.e("user_id", user_id.toString());
Map<String, String> params = new HashMap();
params.put(KEY_TOKEN, token);
params.put(KEY_ROLE, role);
params.put(KEY_ID, user_id);

JSONObject parameters = new JSONObject(params);

JsonObjectRequest jsonRequest = new JsonObjectRequest(Request.Method.POST, url, parameters, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
// Log.e("response mila", response.toString());
parseData(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error)
{
error.printStackTrace();
//TODO: handle failure
}
});

Volley.newRequestQueue(this).add(jsonRequest);
}

Answer

remove Extra }, from your json.

one mistake you did in json parsing code you replied to @Er. Arjun saini .

that mistake is in this line :

JSONArray jsonArray = Object.getJSONArray("err-code");

it should be like this :

JSONArray jsonArray = Object.getJSONArray("job_details");

Make sure json should be like this:

    {


"err-code": 5,
  "job_details": [
    {
      "job_id": 33,
      "job_no": "ES53-AF",
      "contract_manager_id": 4,
      "company_name": "A Construction  Ltd",
      "time_spent": 4.5
    },
    {
      "job_id": 5,
      "job_no": "ES1465-AF",
      "contract_manager_id": 4,
      "company_name": "Trios Property",
      "job_description": "Carry out the rewire of ",
      "time_spent": 26.5
    },


{
  "job_id": 81,
  "job_no": "ES101-AF",
  "contract_manager_id": 4,
  "company_name": "Arden Construction  Ltd",
  "job_description": "Carry out works as per esti 3AQ",
  "time_spent": 2.5
}
  ]
}

And Try this code hope it will work if not work than please share logcat errors and exceptions

try {
        JSONObject Object=new JSONObject(response);
        int code = Object.getInt("err-code");
        if (code == 0) {
            JSONArray jsonArray = Object.getJSONArray("job_details");
            List<JobList> jobListArray=new ArrayList<JobList>();
            for (int i = 0; i <= jsonArray.length(); i++) { 
                JSONObject jsonObject = (JSONObject) jsonArray.get(i);
                JobList model_joblist=new JobList();
                model_joblist.setJobno(jsonObject.getString(JobList.JOB_NO));
                model_joblist.setJobid(jsonObject.getInt(JobList.JOB_ID));
                model_joblist.setDescreption(jsonObject.getString(JobList.JOB_DESCRIPTION));
                jobListArray.add(model_joblist);
            }
        }
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

if it still not work than there is error in any other code e.g. in json are in your model_joblist etc.

share more code and logcat please.

Comments