Boa tarde!
Tenho uma dúvida com a relação à estrutura do json. Eu optei por iniciar uma classe User e seu DTO recebe uma Collection de números de celulares dentre outros parâmetros. Entretanto, quando tento fazer a inserção de um user, aparece um erro dizendo que o json não conseguiu desserializar os parâmetros passados para o controller para o record UserDTO. Alguém poderia me ajudar?
Esse é o meu DTO:
public record StudentDTO
(
@JsonAlias("firstname") String firstName,
@JsonAlias("lastname") String lastName,
@JsonAlias("phones") Collection<PhoneDTO> phones,
@JsonAlias("email") EmailDTO email,
@JsonAlias("username") String username,
@JsonAlias("password") String password,
@JsonAlias("password_confirm") String passwordConfirm
) { }
Esse é o JSON inserido:
{
"firstname": "Student",
"lastname": "001",
"phones": {
"phone1": [
{
"number": "+55 (21) 99999-9999"
}
],
"phone2": [
{
"number": "+55 (21) 99999-9999"
}
]
},
"email": "student@example.com"
"username": "stu_88",
"password": "student@99",
"password_confirm": "studen@99"
}
Essa é a mensagem que eu recebo do Postman quando tento inserir um JSON:
"message": "com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type java.util.ArrayList<empire_foundation.web.records.access.PhoneDTO>
from Object value (token JsonToken.START_OBJECT
)\n at [Source: REDACTED (StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION
disabled); line: 4, column: 15] (through reference chain: empire_foundation.web.records.access.StudentDTO["phones"])"