Como converter um tipo string passado por um JSON em um tipo Enum
3 respostas
G
Gustavfc_Freitas
Boa tarde,
estou com o seguinte problema. Tenho um javascript que chama um método Rest da controller. Um dos atributos do objeto JSON é string e na controller essa valor deve ser convertido em um tipo Enum. Como se faz isso.? Estou recebendo o seguinte erro:
Resolved exception caused by Handler execution: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error
Este valor deve vir exatamente igual ao name do enum em questão.
Exemplo:
publicenumQualquer{TESTE,EXEMPLO,EXEMPLIFICACAO}
E o json
{"qualquer":"EXEMPLO"}
Teoricamente, isso deve resolver o problema.
Caso não, todo enum possui um método chamado valueOf que recebe uma String e devolve o enum em questão. Sempre seguindo a regra acima, o valor, em String, deve ser exatamente igual ao name do enum em questão.
G
Gustavfc_Freitas
Boa tarde Darlan, eu tinha feito dessa forma mas recebi erro de conversão. Fechei e abri o projeto, refiz o método conforme você colocou também e passou a funcionar. Vai entender.
darlan_machado
O projeto não funciona como mágica. Para que você o execute, mesmo em teste, ele precisa ser recompilado (o compilador irá gerar uma nova gama de .class e bytecodes).
Ocorre que, por alguma razão, esta alteração que você realizou não deve ter iniciado o build. Por conta disso, houve esse problema.