Сопоставление JSON с переменным именем объекта
Я совершенно новичок в JSON, и я искал, пытаясь понять, что делать, но не уверен, что полностью понимаю. Я делаю внешний вызов API, возвращая:
2015-12-21 01:22:09 INFO RiotURLSender:60 - Total json:
{"USERNAME":{"profileIconId":984,"revisionDate":1450655430000,"name":"USERNAME2","id":38584682,"summonerLevel":30}}
Где «ИМЯ ПОЛЬЗОВАТЕЛЯ» (И ИМЯ ПОЛЬЗОВАТЕЛЯ2 - которое может очень немного отличаться от ИМЯ ПОЛЬЗОВАТЕЛЯ) будет варьироваться в зависимости от того, что вы передаете параметры вызова. Я использовал Jackson Object Mapper для сопоставления отдельных значений в объекте USERNAME - но не осознавал, что мне нужно было также сопоставить объект.
Я использую аннотации в DTO, такие как:
@JsonProperty("profileIconId")
private Long profileIconId;
и отображение с использованием:
summonerRankedInfoDTO = mapper.readValue(jsonString, SummonerRankedInfoDTO.class);
Как мне сопоставить, используя значение USERNAME, которое меняется каждый раз?
Кроме того, это кажется немного странным, является ли это плохой практикой иметь фактический изменяющийся ключ, а не просто иметь тот же ключ и другое значение?
Спасибо