unhandeled exception org.json.JSONObject

时间:2016-08-01 10:35:31

标签: java android json retrofit2 jsonobject

我使用Retrofit库发出httpClient帖子请求,但是, 我无法将响应主体传递给JSONObject构造函数, 当我尝试使用:

将响应传递给JSONObject时
org.json.JSONObject Jobject = new org.json.JSONObject(jsonData);

我遇到以下异常:

  

unhandeled exception 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…]

任何想法都会帮助我。

1 个答案:

答案 0 :(得分:0)

你应该包围你的

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字符串是否具有您需要的正确格式