Не может десериализировать от значения объекта (без делегат или создателя на основе свойств): зачем Джексону нужен констJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Не может десериализировать от значения объекта (без делегат или создателя на основе свойств): зачем Джексону нужен конст

Сообщение Anonymous »

Я использую Java Spring Boot для своего проекта, и у меня есть следующий контроллер: < /p>

Код: Выделить всё

@AllArgsConstructor
@RestController
@RequestMapping("/api/subject")
public class SubjectController {
private SubjectService subjectService;

@PostMapping
public void createSubject(@RequestBody SubjectCreationDTO subjectCreationDTO) {
LoggingController.getLogger().info(subjectCreationDTO.getTitle());
//        subjectService.createSubject(subjectCreationDTO);
}
}
< /code>
и субъект@AllArgsConstructor
@Getter
@Setter
public class SubjectCreationDTO {
private String title;
}
< /code>
Поэтому я получаю эту ошибку при выполнении запроса сообщения: < /p>

json parse error: не может построить экземпляр
pweb.examhelper.dto.subject.SubjectCreationDTO< /code> (хотя, по крайней мере,
один создатель существует): не может десериализировать из значения объекта (no
делегат или создатель на основе свойств) "< /p>
< /blockquote>   Я могу решить эту ошибку, добавив @noargsconstructor к субъектуреализации, < /code>, но почему это необходимо, когда в других случаях у меня почти точно такой же случай. < /p>
@PostMapping
public ResponseEntity createStudent(@RequestBody StudentCreationDTO studentCreationDTO) {
StudentDTO savedStudent = studentService.createStudent(studentCreationDTO);
return new ResponseEntity(savedStudent, HttpStatus.CREATED);
}
И это StudentCreationDto класс:
@AllArgsConstructor
@Getter
@Setter
public class StudentCreationDTO {
private String username;
private String firstName;
private String lastName;
private String email;
}
< /code>
Я понял, что в случае наличия более чем одного поля вам не нужно указывать @noargscstructor, а библиотека Джексона может проанализировать ввод JSON из тела так же хорошо. Мой вопрос заключается в том, почему у него есть такое поведение, и почему он не может разобрать, если у меня есть только одно поле в классе без конструктора по умолчанию, но это может, если у меня есть несколько полей?

Подробнее здесь: https://stackoverflow.com/questions/782 ... -creator-w
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»