[Resolvido]Deserialização de Json em Objeto contendo um Map

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!

Como foi a classe que criou?

Resolvido.
O que aconteceu, e que achei muito estranho foi o seguinte…
Eu criei um mock no SoapUI simulando 2 serviços com os seguintes paths: /alunos e /alunos/{cpf}/notas
O /alunos retorna uma coleção de alunos com diversos dados cadastrais.
O /alunos/{cpf}/notas retorna notas de um determinado aluno. (O cpf eu passo uma valor fixo no mock)
O resultado retornado desse mock /alunos/{cpf}/notas é o que postei na minha mensagem pedindo ajuda.
Ambos serviços estavam rodando na mesma porta.
Quando eu testei esse mock pelo browser, ambos os serviços estavam funcionando perfeitamente, retornando o esperado.
Quando implementei a chamada desses serviços na aplicação, não sei o motivo, mas tanto a chamada ao /alunos quanto a chamada ao /alunos/{cpf}/notas retornavam os mesmos dados, ou seja a coleção de alunos do /alunos.
Por isso não estava conseguindo converter no objeto esperado.
Descobri isso obtendo o retorno em String ao invés de obter como o objeto que eu desejava.

O que fiz que resolveu, foi rodar os serviços do mock em portas diferentes.