JasonReader.setLenient(true)在第1行1列PATH $错误中接受错误的JSON



当我尝试注册用户时,我的应用程序不断返回"使用JasonReader.setLenient(true)在第1列1路径$上接受错误的JSON。我已经解决了与此有关的大多数问题,但没有一个真正帮助了我。以下是启动与服务器连接的寄存器过程。

 private void registerProcess( final String name,final String email,final String password){
    String tag_string_req = "req_register";
    //pDialog = new AlertDialog.Builder(getActivity());
    pDialog.setMessage("please wait");
    pDialog.show();
          Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(Constants.BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build();
    RequestInterface requestInterface = retrofit.create(RequestInterface.class);
    User user = new User();
    user.setName(name);
    user.setEmail(email);
    user.setPassword(password);
    ServerRequest request = new ServerRequest();
    request.setOperation(Constants.REGISTER_OPERATION);
    request.setUser(user);
    Call<ServerResponse> response = requestInterface.operation(request);
    response.enqueue(new Callback<ServerResponse>() {
        private View view;
        public View getView() {
            return view;
        }
        @Override
        public void onResponse(Call<ServerResponse> call, retrofit2.Response<ServerResponse> response) {
            ServerResponse resp = response.body();
           // if(resp !=null)
            Toast.makeText(getApplicationContext(),response.message(), Toast.LENGTH_LONG).show();
            pDialog.dismiss();
        }

        @Override
        public void onFailure(Call<ServerResponse> call, Throwable t) {
           // progress.setVisibility(View.INVISIBLE);
            Log.d(Constants.TAG, "failed");
            Toast.makeText(getApplicationContext(), t.getLocalizedMessage(), Toast.LENGTH_LONG).show();
            pDialog.dismiss();

        }
    });
}

请检查一开始的响应。我认为您正在收集JSON对象,但您正在尝试将其转换为一个对象。确保您的响应是一个单个JSON对象,或者如果您具有JSON数组响应,请调整您的代码。您的代码实际上适用于单个JSON对象。

最新更新