java.lang.String类型的值字符串(2)无法转换为JSONObject

时间:2017-04-07 21:04:59

标签: android laravel-5 android-volley

我正在尝试将我的Android应用程序连接到我的Laravel API,并且收到以下错误。

Value string(2) of type java.lang.String cannot be converted to JSONObject
运行我的截击请求后

。请求进入低谷,但我无法检查请求的状态,因为它总是返回错误。

我相信这是因为我在Laravel应用程序中返回了一个JSON数组。

这是我Laravel对成功的应用响应

return Response::json(array(
                                'status'  => 'ok',
                                'message'  => 'success',
                        ));

这是我在Android上的Volley请求

RequestQueue queue = Volley.newRequestQueue(this);
        Log.d("sendOrderToServer", "called");
        Log.d("json obj", order.toString());


        JsonObjectRequest jsor = new JsonObjectRequest(MainActivity.ADD_ORDER, order, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                Log.d("response", response.toString());
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.d("error34", error.toString());
            }
        }) {

            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> headers = new HashMap<String, String>();
                headers.put("Content-Type", "application/json");
                headers.put("charset", "utf-8");
                return headers;
            }
        };
        queue.add(jsor);

如果没有手动解析字符串并在Android Volley库中发出字符串请求,我怎么能正确地做到这一点?

2 个答案:

答案 0 :(得分:1)

尝试使用&#34; (双引号)而不是#39; (单引号)

JSON&#34;不喜欢&#34;单引号,双引号是标准的:

function ajaxfunction(parent)
    {
        $.ajax({
            type: 'GET',
            url: 'Connection.php',
            data: {method:'getFaculties', value:parent}
            success: function(data) {
                $("#selFaculty").html(data);
            }
        });
    }

见SO:jQuery.parseJSON single quote vs double quote

答案 1 :(得分:0)

我的事件'__construct中有一个var_dump用于调试目的,我忘了它。