Небольшое примечание: ваш JSON искажен, так как в нем отсутствуют несколько запятых. Как только они будут добавлены, это будет работать для вас.
Прежде всего, вам понадобится класс для представления Client
:
public class Client {
private final int clientId;
private final String moreFields;
@JsonCreator
public Client(@JsonProperty("clientId") int clientId,
@JsonProperty("moreFields") String moreFields) {
this.clientId = clientId;
this.moreFields = moreFields;
}
@Override
public String toString() {
return "Client[clientId=" + clientId + ", moreFields=" + moreFields + "]";
}
}
Теперь вам просто нужно создать ObjectMapper
и перебрать элементы вашей clientByClientId
карты, что можно сделать с помощью следующего:
ObjectMapper objectMapper = new ObjectMapper();
JsonNode node = objectMapper.readTree(json).get("clientByClientId");
Map<Integer, Client> clientMap = objectMapper.readValue(node.traverse(),
new TypeReference<Map<Integer, Client>>() {});
System.out.println(clientMap.values());
Вывод этого кода:
[Client[clientId=123, moreFields=moreData], Client[clientId=456, moreFields=moreData]]