我使用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…]
任何想法都会帮助我。
答案 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字符串是否具有您需要的正确格式