1
resposta

Listar uma API Externa com atributoscom traços

Ola! tenho um a DTO

Que pega dados externos porem aguns campos da JSON que o serviço fornece esta com traços:

Exemplo pameando os campos:

class DTOEmpregado{

@JSonProperty( digitito-verificador-matricula) private String digito verificador }

Queria deixar dessa forma o retorno da api para mapear para o Angular @JSonProperty( digititoverificadormatricula) private String digito verificador }

consumir sem os traços.saca?

Ou seja:

ao invés disso: { "digitito-verificador-matricula":" 3231"

}

queria isso:

{ "digititoverificadormatricula":" 3231"

} sem traços

1 resposta

Olá, Emerson!

Entendo que você esteja tentando consumir uma API externa e mapear os dados recebidos para um DTO em sua aplicação Spring Boot, mas está tendo problemas com os nomes dos campos que contêm hífens.

A biblioteca Jackson, que é usada pelo Spring Boot para serialização e desserialização JSON, permite que você mapeie nomes de campos JSON para nomes de campos Java que não seguem as convenções normais de nomenclatura Java. No entanto, você precisa garantir que os nomes dos campos sejam exatamente iguais aos do JSON que está sendo mapeado.

No seu caso, você pode fazer o seguinte:

public class DTOEmpregado {

    @JsonProperty("digitito-verificador-matricula")
    private String digititoverificadormatricula;

    // getters e setters
}

Aqui, o nome do campo na classe Java é digititoverificadormatricula, que é um nome de campo Java válido, e o nome do campo JSON é digitito-verificador-matricula, que contém hífens. A anotação @JsonProperty permite que você mapeie esses dois nomes de campo.

Infelizmente, não é possível remover os hífens do nome do campo JSON na sua aplicação Java, pois o nome do campo no JSON fornecido pela API externa contém hífens. A remoção dos hífens teria que ser feita na API externa.

Espero ter ajudado e bons estudos!