Como retornar um objeto personalizado de uma consulta Spring Data JPA GROUP BY

Estou desenvolvendo um aplicativo Spring Boot com o Spring Data JPA. Estou usando uma consulta JPQL personalizada para agrupar por algum campo e obter a contagem. A seguir está o meu método de repositório.

@Query(value = "select count(v) as cnt, v.answer from Survey v group by v.answer")
public List<?> findSurveyCount();

Está funcionando e o resultado é obtido da seguinte maneira:

[
  [1, "a1"],
  [2, "a2"]
]

Eu gostaria de obter algo parecido com isto:

[
  { "cnt":1, "answer":"a1" },
  { "cnt":2, "answer":"a2" }
]

Como posso conseguir isso?

questionAnswers(6)

yourAnswerToTheQuestion