ボレーライブラリからこのエラーが発生しました
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
エラー
com.Android.volley.ParseError: org.json.JSONException: Value [{"id":"admin","name":"Admin"}] of type org.json.JSONArray cannot be converted to JSONObject
結果を文字列として受け取り、jacksonを使用して処理するにはどうすればよいですか?
結果を文字列として受け取りたい場合は、JSONRequestを使用しないでください。単純なRequestクラスを使用します。問題は非常に単純で、サーバーは1つの要素のみを含むJSONArrayを返します。 JSONArrayはJSONObjectではありません。そのため、解析が失敗します。
RequestQueue queue = Volley.newRequestQueue(this);
final String url = "http://192.168.88.253/mybazar/get_product_list.php";
// prepare the Request
JsonArrayRequest getRequest = new JsonArrayRequest(Request.Method.GET, url, null,
new Response.Listener<JSONArray>()
{
@Override
public void onResponse(JSONArray response) {
// display response
Log.d("Response", response.toString());
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
Log.d("Error.Response", error.toString());
}
}
);
// add it to the RequestQueue
queue.add(getRequest);
うまくいけば、それは問題を解決します。
ボレーでサポートされているクラスJsonArrayRequestがあることに気付いたので、このクラスを使用して問題を解決しました。JsonObjectRequestを使用していました。