Boa tarde!
Estou com um problema no qual estou apanhando bastante pra resolver.
Tenho um client feito com Spring, o qual devo buscar dados que retornam o seguinte Json:
{ "cpf": "123", "notas": { "disciplina1": 8, "disciplina2": 3.5, "disciplina3": 9 } }
Dentro de notas pode-se haver n disciplinas.
Sendo assim, criei uma classe contendo uma String com CPF e um Map<String, Double> para disciplinas/notas
@JsonIgnoreProperties(ignoreUnknown = true)
public class StudentGrade {private String cpf;
@JsonProperty(“notas”)
private Map<String, Double> gradeByDiscipline = new HashMap<String, Double>();
O client está implementado da seguinte forma:
public StudentGrade getStudentGrades(final String cpf) { return restOperations.getForObject(properties.getStudentsServiceUrl() + properties.getStudentsGradesPath(), StudentGrade.class, cpf); }
Porém é retornado o seguinte erro:
com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of br.com.emailClient.model.StudentGrade out of START_ARRAY token
Alguém saberia me dizer como faço pra conseguir ler esse Json num objeto contendo uma String e um Map ?
Há um modo disso ocorrer automaticamente ou eu teria que ler o Json e transformá-lo na mão?
Caso tenha que fazer na unha, poderiam me dar um exemplo de como faria com Jackson?
Obrigado!