Eu sou incapaz de converter meu JSON do corpo do método de pós em minha POJO, com @RequestBody
dentro da minha classe de controlador.
Eu depurado o erro e eu vi que alguns campos foram mapeados e outras não. Como este (POJO) :
name: null, typeOfPlan: null, Email: [email protected], PhoneNum: 123456789, Website: test.org, Username: null, password: 1234
, O que é estranho.
JSON:
{
"confirmPassword": "1234",
"email": "[email protected]",
"password": "1234",
"phoneNum": "123456789",
"name": "Hello world",
"typeOfPlan": "Test",
"userName": "user",
"website": "test.org"
}
Controlador
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SomeController {
@Autowired
private Service foo;
@CrossOrigin
@PostMapping(value = "/create")
private void createAccount(@RequestBody BigFoo bigFoo) {
foo.createAccount(bigFoo);
}
}
A partir daqui, eu chamo o meu serviço, então classes DAO.
POJO
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class BigFoo {
private String name;
private String typeOfPlan;
private String email;
private String website;
private String phoneNum;
private String username;
private String password;
}
Eu também tentei para permitir JSON com consumes media type
no @PostMapping
, mas não conseguiu que resolver isso.
Usando Jackson ObjectMapper não funcionar tão bem.
Meu problema era simples: os meus variáveis em meu projeto Angular, enviando os dados para o meu Primavera Bota aplicativo foram mal escrito, e, portanto, não foram reconhecidos pelo meu aplicativo backend e, portanto, não foram mapeados para o meu POJO corretamente.
Depois eu mudei minha forma de frontend variáveis para combinar variáveis meus do POJO, eu tenho este:
dados POJO
name: It's good now, typeOfPlan: 2 Year, Email: [email protected], PhoneNum: 123456789, Website: test.org, Username: Master, password: 1234
Primavera Bota não conseguiu mapear name
, typeOfPlan
e Username
do JSON porque eles simplesmente não se encontraram os de minha backend.
Antes
Name, typeOfPlan, userName
Depois de
name, type, username
Obrigado a todos!