android无法将字符串转换为jsonarray
Posted
技术标签:
【中文标题】android无法将字符串转换为jsonarray【英文标题】:android fails to convert string to jsonarray 【发布时间】:2017-06-04 21:11:40 【问题描述】:嘿,我编写了一个 golang 休息服务,它工作正常! 问题是我需要在我的 android 应用程序中使用该服务,所以我需要一个 JSONArray 或一个 JSONObject。
当我像这样调用服务时,我没有问题
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>()
@Override
public void onResponse(String response)
Log.d("RESPONSE: ",response);
但是当我尝试像这样调用服务时
JsonArrayRequest req= new JsonArrayRequest(url,
new Response.Listener<JSONArray>()
@Override
public void onResponse(JSONArray response)
json 转换失败。
我真的不知道我的错在哪里.. 谢谢 约翰
【问题讨论】:
你检查过json格式吗?由于它无法转换它...... PS:这应该引发异常,它应该出现在这篇文章中。而且我认为golang
部分是不必要的。基本上,您正在尝试在 Android 应用上转换 Json。
【参考方案1】:
您必须使用 Api 调用设置标题检查此代码将有助于解决您的问题
public void makeJsonArrayRequest(Context context, String url, final String requestTag, final ServiceCallBack listener)
final ProgressDialog pDialog = new ProgressDialog(context);
pDialog.setMessage("Loading...");
pDialog.show();
JsonArrayRequest jsonObjReq = new JsonArrayRequest(
url,
new Response.Listener<JSONArray>()
@Override
public void onResponse(JSONArray response)
Log.d(TAG, response.toString());
listener.onSuccess(requestTag, response.toString());
pDialog.hide();
, new Response.ErrorListener()
@Override
public void onErrorResponse(VolleyError error)
VolleyLog.d(TAG, "Error: " + error.getMessage());
// hide the progress dialog
listener.onFailure(requestTag, error.getMessage());
pDialog.hide();
)
@Override
public Map<String, String> getHeaders() throws AuthFailureError
HashMap<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json; charset=utf-8");
return headers;
;
AppController.getInstance().addToRequestQueue(jsonObjReq, requestTag);
VolleyExample
【讨论】:
请参阅How to Answer 关于链接。您应该提取重要的内容以及时保留此答案(该链接将来可能会断开)以上是关于android无法将字符串转换为jsonarray的主要内容,如果未能解决你的问题,请参考以下文章
如何将 JsonArray 对象转换为要在 spinner java android 上使用的字符串数组?
在android中将JsonArray转换为byte []数组
JSONObject 无法在 android 中转换为 JSONArray