यह JSONArray डेटा और हेडर के साथ काम करने के लिए एक उदाहरण है।
सबसे पहले अपने स्वयं के कस्टम अनुरोध प्रकार कार्यान्वयन बनाने के लिए:
public class JsonRequest extends JsonObjectRequest {
public JsonRequest(int method, String url, JSONObject jsonRequest, Response.Listener
<JSONObject> listener, Response.ErrorListener errorListener) {
super(method, url, jsonRequest, listener, errorListener);
}
@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
try {
String jsonString = new String(response.data,
HttpHeaderParser.parseCharset(response.headers, PROTOCOL_CHARSET));
JSONObject jsonResponse = new JSONObject();
jsonResponse.put("data", new JSONArray(jsonString));
jsonResponse.put("headers", new JSONObject(response.headers));
return Response.success(jsonResponse,
HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JSONException je) {
return Response.error(new ParseError(je));
}
}
}
और आपके अनुरोध कोड में:
JsonRequest request = new JsonRequest
(Request.Method.POST, URL_API, payload, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray data = response.getJSONArray("data");
JSONObject headers = response.getJSONObject("headers");
} catch (JSONException e) {
Log.e(LOG_TAG, Log.getStackTraceString(e));
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(LOG_TAG, Log.getStackTraceString(error));
}
});
वॉली प्रलेखन Implementing a Custom Request में अपने स्वयं के कस्टम अनुरोध को लागू करने के बारे में अधिक जानकारी देखें।
धन्यवाद !! यह काम करता हैं!! मैं JSONObject वापस हेडर जोड़ने के बजाय parseNetworkResponse में शीर्षकों में अपना काम कर रहा हूं। – Chopi