繁体   English   中英

未处理的异常org.json.JSONObject

[英]unhandeled exception org.json.JSONObject

我正在使用Retrofit库发出httpClient发布请求,但是当我尝试使用以下方法将响应传递给JSONObject时,我无法将响应正文传递给JSONObject构造函数:

org.json.JSONObject Jobject = new org.json.JSONObject(jsonData);

我有以下异常:

未处理的异常org.json.JSONObject

我的代码:

call.enqueue(new Callback<ResponseBody>() {
                @Override
                public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                    if(response.isSuccessful()){

                    String jsonData = response.body().toString();

                    JSONObject Jobject = new JSONObject(jsonData);

                }

            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                display_message.setText(t.toString());
            }
        });

以下语句的预期返回值:

String jsonData = response.body().source().toString();

是: {"is_new_user":true,"messing_user_data["mobile_number","country_code","password","pin"]}

但是确切的返回结果是:

[size=90 text={"is_new_user":true,"messing_user_data":["mobile_number","countr…]

任何想法都可以帮助我。

你应该包围你的

JSONObject Jobject = new JSONObject(jsonData);

带try-catch块

call.enqueue(new Callback<ResponseBody>() {
        @Override
        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
            if(response.isSuccessful()){

            String jsonData = response.body().toString();

            try {
                JSONObject Jobject = new JSONObject(jsonData);
            } catch (JSONException e) {
                e.printStackTrace();
            }

        }

    }

    @Override
    public void onFailure(Call<ResponseBody> call, Throwable t) {
        display_message.setText(t.toString());
    }
});

并尝试检查您的json字符串是否具有所需的正确格式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM