Cómo devolver un objeto personalizado de una consulta Spring Data JPA GROUP BY

Estoy desarrollando una aplicación Spring Boot con Spring Data JPA. Estoy usando una consulta JPQL personalizada para agrupar por algún campo y obtener el recuento. El siguiente es mi método de repositorio.

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

Está funcionando y el resultado se obtiene de la siguiente manera:

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

Me gustaría obtener algo como esto:

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

¿Cómo puedo conseguir esto?

Respuestas a la pregunta(6)

Su respuesta a la pregunta