Kann nicht vom Objektwert Deserialisieren (kein Delegierungs- oder Eigenschaftsbasierter Schöpfer): Warum braucht JacksoJava

Java-Forum
Anonymous
 Kann nicht vom Objektwert Deserialisieren (kein Delegierungs- oder Eigenschaftsbasierter Schöpfer): Warum braucht Jackso

Post by Anonymous »

Ich verwende Java Spring Boot für mein Projekt und habe den folgenden Controller: < /p>

Code: Select all

@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>
und SubjectCreationDTO: < /p>
@AllArgsConstructor
@Getter
@Setter
public class SubjectCreationDTO {
private String title;
}
< /code>
Ich erhalte diesen Fehler also bei einer Postanforderung: < /p>

JSON PARSE ERROR: Die Instanz von
pweb.examhelper.dto.subject.SubjectCreationDTO< /code> (obwohl zumindest
ein Ersteller existiert): Kann nicht vom Objektwert deserialisieren (nein
delegat- oder Eigenschaftsbasierter Ersteller) "< /p>
< /blockquote> < BR />  Ich kann diesen Fehler lösen, indem ich @noArgSconstructor in die SubjektcreationDTO < /code> hinzufügen kann. Warum ist dies jedoch erforderlich, wenn ich in anderen Fällen fast genau den gleichen Fall habe.@PostMapping
public ResponseEntity createStudent(@RequestBody StudentCreationDTO studentCreationDTO) {
StudentDTO savedStudent = studentService.createStudent(studentCreationDTO);
return new ResponseEntity(savedStudent, HttpStatus.CREATED);
}
Und dies ist die StudentCreationDTO Klasse:
@AllArgsConstructor
@Getter
@Setter
public class StudentCreationDTO {
private String username;
private String firstName;
private String lastName;
private String email;
}
< /code>
Ich habe herausgefunden, dass Sie bei mehr als nur einem Feld nicht angeben müssen, dass @NoArgSconstructor und Jackson Library den Eingang JSON aus dem Körper genauso gut analysieren können. Meine Frage ist, warum es dieses Verhalten hat und warum es nicht analysieren kann, wenn ich nur ein Feld in der Klasse ohne den Standardkonstruktor habe, aber es kann, wenn ich mehrere Felder habe?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post