Я считаю, что вам лучше всего использовать карты, чтобы учесть динамические клавиши. Что-то вроде:
public class JSWrapper {
public HashMap<String, JSMessage> messages;
public static class JSMessage {
public String name;
public Admins admins;
}
public static class Admins {
...
}
}
Похоже, что ваш JSON имеет рекурсивную структуру, хотя это не совсем понятно из вашего примера. Если дело в том, что ваше имя и ключи администратора будут разными, в конечном итоге с именами namesn и adminsn, вам нужно будет представить даже эти ключи в качестве ключей на карте. Я не уверен, может ли Gson учесть эту рекурсивную структуру, но я верю, что Карты решат проблему динамического ключа, о которой вы спрашиваете.
Конечно, как только данные находятся на картах, ваш код должен понять, какие данные (1, 2, .. n) доступны в пределах.