Исходя из вашего JSON, имя на самом деле является списком, поэтому вы должны сопоставить:
@JsonProperty("name")
public void setFstNm(List<Map<String, Object>> name) {
this.fstNm = (String) name.get(0).get("given");
}
Это получает свойство 'заданное' из первой позиции массива. Конечно, вам нужно предварительно проверить, пуст список или нет, и действительно ли вам нужен первый.
[ОБНОВЛЕНО]
Для нового JSON, указанного выше, другой способ для синтаксического анализа:
@JsonProperty("hits")
public void setFstNm(Map<String, List<Map<String, List<Map<String, Object>>>>> hits) {
this.fstNm = (String) hits.get("hits").get(0).get("name").get(0).get("given");
}
Или, если вы анализируете с помощью ObjectMapper, вы можете легко прочитать:
JsonNode jsonNode = new ObjectMapper().readTree(<<JSON>>);
String givenName = jsonNode.get("hits").get("hits").get(0)
.get("name").get(0).get("given").asText();