Com.android.volley.ParseError: org.json.JSONException: значение New типа java.lang.String невозможно преобразовать в JSO ⇐ JAVA
Com.android.volley.ParseError: org.json.JSONException: значение New типа java.lang.String невозможно преобразовать в JSO
Работаю над Android Studio и IntelliJ для мобильной разработки, и при работе на странице регистрации после отправки запроса я получаю эту ошибку
com.android.volley.ParseError: org.json.JSONException: значение New типа java.lang.String невозможно преобразовать в JSONObject но проблема в том, что я вижу на серверной стороне, что он сохраняет пользователя и дает ответ 200 ОК
ПОСТ "/люди", параметры={} Сопоставляется с coms309.people.PeopleController#createPerson(Person) Прочитайте «application/json;charset=utf-8» для [5 dave borucki [email protected] dunk] 5 Дэйв Боруки [email protected] данк Использование «text/plain», заданного [*/*] и поддерживаемого [text/plain, */*, application/json, application/*+json] Написание ["Спасён новый человек, Дэйв"] Выполнено 200 ОК
Вот как выглядит мой код внешнего интерфейса AS.
пакет com.example.androidexample; импортировать androidx.appcompat.app.AppCompatActivity; импортировать android.content.Intent; импортировать android.os.Bundle; импортировать android.view.View; импортировать android.widget.Button; импортировать android.widget.EditText; импортировать android.widget.Toast; импортировать com.android.volley.RequestQueue; импортировать com.android.volley.toolbox.Volley; импортировать com.android.volley.AuthFailureError; импортировать com.android.volley.Request; импортировать com.android.volley.Response; импортировать com.android.volley.VolleyError; импортировать com.android.volley.toolbox.JsonObjectRequest; импортировать org.json.JSONException; импортировать org.json.JSONObject; импортировать java.util.HashMap; импортировать java.util.Map; публичный класс SignupActivity расширяет AppCompatActivity { частный EditText firstNameEditText; частный EditText LastNameEditText; частный EditText emailAddressEditText; личный пароль EditTextEditText; частная кнопка SignupButton; частная кнопка loginButton; частный пользователь JSONObject; частная статическая конечная строка URL_SIGNUP = "http://10.0.2.2:8081/people"; частная ошибка EditTextEditText; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); setContentView(R.layout.activity_signup); /* инициализируем элементы пользовательского интерфейса */ firstNameEditText = findViewById(R.id.signup_firstName_edt); // ссылка на редактируемый текст имени пользователя в XML-коде действия регистрации LastNameEditText = findViewById(R.id.signup_lastName_edt); // ссылка на текст пароля в XML-коде действия регистрации emailAddressEditText = findViewById(R.id.signup_email_edt); // ссылка для подтверждения редактирования текста в XML-коде действия регистрации парольEditText = findViewById(R.id.signup_password_edt); // ссылка на кнопку входа в XML-файл действия регистрации SignupButton = findViewById(R.id.signup_signup_btn); // ссылка на кнопку регистрации в XML-коде действия регистрации loginButton = findViewById(R.id.signup_login_btn); errorEditText = findViewById(R.id.errorText); /* прослушиватель щелчка при нажатой кнопке входа в систему */ loginButton.setOnClickListener(новый View.OnClickListener() { @Override общественная недействительность onClick (Просмотр v) { /* при нажатии кнопки входа в систему используйте намерение для переключения на активность входа */ Намерение намерение = новое намерение (SignupActivity.this, LoginActivity.class); startActivity (намерение); // переходим к LoginActivity } }); /* прослушиватель кликов по нажатой кнопке регистрации */ SignupButton.setOnClickListener(новый View.OnClickListener() { @Override общественная недействительность onClick (Просмотр v) { /* извлекаем строки из введенных пользователем строк */ Строка firstName = firstNameEditText.getText().toString(); Строка LastName = LastNameEditText.getText().toString(); Строка emailAddress = emailAddressEditText.getText().toString(); Строковый пароль = парольEditText.getText().toString(); System.out.println("Регистрация нажата"); пользователь = новый JSONObject(); пытаться { user.put("id", 5); user.put("ПервоеИмя", ПервоеИмя); user.put("LastName", LastName); user.put("Адрес электронной почты", адрес электронной почты); user.put("пароль", пароль); } catch (JSONException e) { выдать новое RuntimeException(e); } SignUpRequest(); } }); } частный недействительный SignUpRequest () { Очередь RequestQueue = Volley.newRequestQueue(this); Запрос JsonObjectRequest = новый JsonObjectRequest( Запрос.Метод.POST, URL_SIGNUP, пользователь, новый Response.Listener() { @Override public void onResponse (ответ JSONObject) { Toast.makeText(getApplicationContext(), «Учетная запись создана», Toast.LENGTH_LONG).show(); Намерение SuccessIntent = новое намерение (SignupActivity.this, MainActivity.class); //successIntent.putExtra("id", id); startActivity (successIntent); } }, новый Response.ErrorListener() { @Override public void onErrorResponse (ошибка VolleyError) { Toast.makeText(getApplicationContext(), «Регистрация не удалась (VolleyError)», Toast.LENGTH_LONG).show(); errorEditText.setText(error.toString()); } }); очередь.добавить (запрос); } } Я пытался переставить место, где должен находиться объект JSON, я сделал это раньше, там, где он находился внутри функции SignupRequest()
Работаю над Android Studio и IntelliJ для мобильной разработки, и при работе на странице регистрации после отправки запроса я получаю эту ошибку
com.android.volley.ParseError: org.json.JSONException: значение New типа java.lang.String невозможно преобразовать в JSONObject но проблема в том, что я вижу на серверной стороне, что он сохраняет пользователя и дает ответ 200 ОК
ПОСТ "/люди", параметры={} Сопоставляется с coms309.people.PeopleController#createPerson(Person) Прочитайте «application/json;charset=utf-8» для [5 dave borucki [email protected] dunk] 5 Дэйв Боруки [email protected] данк Использование «text/plain», заданного [*/*] и поддерживаемого [text/plain, */*, application/json, application/*+json] Написание ["Спасён новый человек, Дэйв"] Выполнено 200 ОК
Вот как выглядит мой код внешнего интерфейса AS.
пакет com.example.androidexample; импортировать androidx.appcompat.app.AppCompatActivity; импортировать android.content.Intent; импортировать android.os.Bundle; импортировать android.view.View; импортировать android.widget.Button; импортировать android.widget.EditText; импортировать android.widget.Toast; импортировать com.android.volley.RequestQueue; импортировать com.android.volley.toolbox.Volley; импортировать com.android.volley.AuthFailureError; импортировать com.android.volley.Request; импортировать com.android.volley.Response; импортировать com.android.volley.VolleyError; импортировать com.android.volley.toolbox.JsonObjectRequest; импортировать org.json.JSONException; импортировать org.json.JSONObject; импортировать java.util.HashMap; импортировать java.util.Map; публичный класс SignupActivity расширяет AppCompatActivity { частный EditText firstNameEditText; частный EditText LastNameEditText; частный EditText emailAddressEditText; личный пароль EditTextEditText; частная кнопка SignupButton; частная кнопка loginButton; частный пользователь JSONObject; частная статическая конечная строка URL_SIGNUP = "http://10.0.2.2:8081/people"; частная ошибка EditTextEditText; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); setContentView(R.layout.activity_signup); /* инициализируем элементы пользовательского интерфейса */ firstNameEditText = findViewById(R.id.signup_firstName_edt); // ссылка на редактируемый текст имени пользователя в XML-коде действия регистрации LastNameEditText = findViewById(R.id.signup_lastName_edt); // ссылка на текст пароля в XML-коде действия регистрации emailAddressEditText = findViewById(R.id.signup_email_edt); // ссылка для подтверждения редактирования текста в XML-коде действия регистрации парольEditText = findViewById(R.id.signup_password_edt); // ссылка на кнопку входа в XML-файл действия регистрации SignupButton = findViewById(R.id.signup_signup_btn); // ссылка на кнопку регистрации в XML-коде действия регистрации loginButton = findViewById(R.id.signup_login_btn); errorEditText = findViewById(R.id.errorText); /* прослушиватель щелчка при нажатой кнопке входа в систему */ loginButton.setOnClickListener(новый View.OnClickListener() { @Override общественная недействительность onClick (Просмотр v) { /* при нажатии кнопки входа в систему используйте намерение для переключения на активность входа */ Намерение намерение = новое намерение (SignupActivity.this, LoginActivity.class); startActivity (намерение); // переходим к LoginActivity } }); /* прослушиватель кликов по нажатой кнопке регистрации */ SignupButton.setOnClickListener(новый View.OnClickListener() { @Override общественная недействительность onClick (Просмотр v) { /* извлекаем строки из введенных пользователем строк */ Строка firstName = firstNameEditText.getText().toString(); Строка LastName = LastNameEditText.getText().toString(); Строка emailAddress = emailAddressEditText.getText().toString(); Строковый пароль = парольEditText.getText().toString(); System.out.println("Регистрация нажата"); пользователь = новый JSONObject(); пытаться { user.put("id", 5); user.put("ПервоеИмя", ПервоеИмя); user.put("LastName", LastName); user.put("Адрес электронной почты", адрес электронной почты); user.put("пароль", пароль); } catch (JSONException e) { выдать новое RuntimeException(e); } SignUpRequest(); } }); } частный недействительный SignUpRequest () { Очередь RequestQueue = Volley.newRequestQueue(this); Запрос JsonObjectRequest = новый JsonObjectRequest( Запрос.Метод.POST, URL_SIGNUP, пользователь, новый Response.Listener() { @Override public void onResponse (ответ JSONObject) { Toast.makeText(getApplicationContext(), «Учетная запись создана», Toast.LENGTH_LONG).show(); Намерение SuccessIntent = новое намерение (SignupActivity.this, MainActivity.class); //successIntent.putExtra("id", id); startActivity (successIntent); } }, новый Response.ErrorListener() { @Override public void onErrorResponse (ошибка VolleyError) { Toast.makeText(getApplicationContext(), «Регистрация не удалась (VolleyError)», Toast.LENGTH_LONG).show(); errorEditText.setText(error.toString()); } }); очередь.добавить (запрос); } } Я пытался переставить место, где должен находиться объект JSON, я сделал это раньше, там, где он находился внутри функции SignupRequest()
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Санирование сбежало json string org.json.jsonexception: отсутствующее значение на символе 1
Anonymous » » в форуме JAVA - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-