Я пишу приложение crud с использованием SpringBoot и Jquery с Ajax. И я получаю следующее исключение: (Я получаю исключение, когда пытаюсь добавить нового пользователя)
.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of
`ru.javamentor.predproject3.model.User` out of START_ARRAY token; nested exception is
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of
`ru.javamentor.predproject3.model.User` out of START_ARRAY token
at [Source: (PushbackInputStream); line: 1, column: 1]]
Вот мой js. Метод GET работает нормально.
$(document).ready(function () {
gettingListOfUsers();
addingUser();
});
function gettingListOfUsers() {
$.ajax({
url: '/rest/users',
type: 'GET',
dataType: 'json',
success: function (listOfUsers) {
let userData = '';
$.each(listOfUsers, function (index, user) {
userData += '<tr>';
userData += '<td>' + user.id + '</td>';
userData += '<td>' + user.firstName + '</td>';
userData += '<td>' + user.secondName + '</td>';
userData += '<td>' + user.email + '</td>';
userData += '<td>' + user.role + '</td>';
userData += '<td> <button class="btn btn-info" data-toggle="modal">update</button> ' +
'<a class="btn btn-danger" onclick="if (!(confirm(\'Are you sure you want to delete this user?\'))) ' +
'return false">delete</a></td>';
userData += '</tr>';
});
$('#userTable2').html(userData);
},
error: function (error) {
alert("Error");
}
})
}
function addingUser() {
$('#addingButton').on('click', function (event) {
event.preventDefault();
const addingFormData = $('#addingUserForm').serializeArray();
// alert(addingFormData.length);
$.ajax({
url: '/rest/adding',
type: 'POST',
data: JSON.stringify(addingFormData),
dataType: 'json',
contentType: "application/json",
success: function (responseData, status, jqXHR) {
alert('User has been added successfully');
gettingListOfUsers();
},
error: function () {
alert('Error');
}
})
})
}
Моя программа даже не доходит до контроллера. Попадает в блок ошибок
@ PostMapping ("/ добавление")
public ResponseEntity<User> addingPost(@RequestBody User user) {
HttpHeaders httpHeaders = new HttpHeaders();
user.setPassword(passwordEncoder.encode(user.getPassword()));
userService.addUser(user);
return new ResponseEntity<>(user, httpHeaders, HttpStatus.CREATED);
}