排球JSON响应
问题描述:
我想在我的代码中使用Volley哪些请求类型应该用于我的响应下面我无法理解。 URL ::: http://localhost/api/product/read.php排球JSON响应
{
"data":[
{
"category_id":"1",
"category_name":"Today's Recipe",
"recipes":[
{
"id":"1",
"recipe_name":"Peanut, and Chilli Noodles",
"ingredients":"Serves: 4 \r\n\r\n250g (9 oz) fresh Chinese ,
"prepration":"Prep:15min Cook:10min Ready in:25min \r\n\r\nCook
noodles in a large pot of boiling water until done. have
chilli paste, use minced red chilli to taste."
}
]
},
答
试试这个:
RequestQueue requestQueue = Volley.newRequestQueue(context);
final String url = "url here";
JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response)
{
Log.e(" result",(String.valueOf(response)));
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
}
}
);
requestQueue.add(getRequest);
希望这有助于。
+0
我也试过了,但它显示字符串请求无法转换为Json对象 –
+0
看看这个https://*.com/questions/17992753/can-not-convert-json-string-to-object – nimi0112
答
StringRequest jsonObjectRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response != null) {
try {
JSONObject jsonObject = new JSONObject(response);
if (jsonObject.getString("status").equalsIgnoreCase("success")) {
JSONArray jsonArray = jsonObject.getJSONArray("data");
if(jsonArray!=null && jsonArray.length()>0){
for(int i=0;i<jsonArray.length();i++){
JSONObject data_object=jsonArray.getJSONObject(i);
JSONArray recepie = data_object.getJSONArray("recipes");
}
//
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
MySingleton.getInstance(context).addToRequestQueue(jsonObjectRequest);
jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(
APIConstants.API_TIMEOUT, //for 30 Seconds
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
}
希望这有助于
这似乎是一个JSON对象,所以你应该使用一个JsonObjectRequest https://developer.android.com/training/volley/request.html – joao86
你应该使用JsonRequest。请参阅我在本博客上的回答: https://*.com/questions/47936955/i-am-unable-to-make-a-network-call-using-volley-i-have-tried-many-solutions -but/47937120#47937120 –
当我使用jsonobject请求时,出现以下错误显示::: com.android.volley.ParseError:org.json.JSONException:值java.lang.String类型的连接无法转换为JSONObject –