android 无法将字符串转换为 jsonarray

标签 android arrays json rest go

嘿,我编写了一个 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转换失败

我真的不知道我的错在哪里.. 谢谢 约翰

最佳答案

您必须使用 Api 调用设置 header 检查此代码,这将有助于解决您的问题

 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

关于android 无法将字符串转换为 jsonarray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41754175/

相关文章:

javascript - 我正在尝试实现具有多个输出的 Ajax 网络表单,但它不起作用

arrays - 查询 JSON key :Value Pairs in AWS Athena

ios - 尝试在 alamofire 中发送 json 对象,但它位于 json 数组中

android - GDB(在 Android 上)使用 'where' 解析当前位置时出现问题

C++ 继承 - 如何使用指向基类对象的指针访问子方法

android - fragment TabLayout/GridView OutMemory

java - 多个 for 循环迭代器的最佳实践

java - 在 python 中运行 java 代码 - 带输入/输出

android - ImageView 未显示在 TableRow 上

android - 我在哪里放置 themes.xml?