Я следил за учебник (честно говоря, я копировал вставку, поэтому я не знаю, почему это не работает, потому что я ничего не менял), и у меня есть ответ String, который мне нужно преобразовать в объект Json ,

Ответ =

Config.php \ г \ п { " ошибка " : ложь , " пользователь " : { " имя " : " Тест " , " фамилия " : " Тест " , " адрес " : " Тест " , " электронная почта " : " Тест " } }

Сразу после try в JSONObject jObj = new JSONObject(response); моя программа переходит к исключению с сообщением:

Метод сгенерировал исключение java.lang.NullPointerException. Невозможно оценить org.json.JSONObject.toString ()

Это структура response или что-то еще?

Вот где я использую это:

@Override
            public void onResponse(String response) {
                Log.d(TAG, "Login Response: " + response.toString());
                hideDialog();

                try {
                    JSONObject jObj = new JSONObject(response);
                    boolean error = jObj.getBoolean("error");

                    // Check for error node in json
                    if (!error) {
                        // user successfully logged in
                        // Create login session
                        session.setLogin(true);

                        // Now store the user in SQLite

                        JSONObject user = jObj.getJSONObject("user");
                        String name = user.getString("name");
                        String surname = user.getString("surname");
                        String address = user.getString("address");
                        String email = user.getString("email");

                        // Inserting row in users table
                        db.addUser(name, surname, address, email);

                        // Launch main activity
                        Intent intent = new Intent(LoginScreen.this,
                                MainMenu.class);
                        startActivity(intent);
                        finish();
                    } else {
                        // Error in login. Get the error message
                        String errorMsg = jObj.getString("error_msg");
                        Toast.makeText(getApplicationContext(),
                                errorMsg, Toast.LENGTH_LONG).show();
                    }
                } catch (JSONException e) {
                    // JSON error
                    e.printStackTrace();
                    Toast.makeText(getApplicationContext(), "Json error: " + e.getMessage(), Toast.LENGTH_LONG).show();
                }

            }
2
giedriusx3 1 Апр 2017 в 21:29

2 ответа

Лучший ответ

Удалите префикс Config.php\r\n из ответа, прежде чем превратить его в объект JSON.

1
Faysal Ahmed 28 Май 2018 в 04:56

Ваш response не является допустимой строкой json.

См. RFC 7159.

Кроме того, вы можете проверить свой JSON с помощью онлайн json форматера.

0
Sergei Rybalkin 1 Апр 2017 в 18:54