Вам нужно что-то вроде этого:
public class NamedIcon {
private String name;
private String icon;
NamedIcon() {}
public NamedIcon(String name, String icon) {
this.name = name;
this.icon = icon;
}
// Getters, equals, hashCode, toString, whatever else
}
А потом какой-то класс-обёртка:
public class Wrapper {
@SerializedName("1") private NamedIcon one;
@SerializedName("2") private NamedIcon two;
// ...
}
И затем, поскольку ваше поле "poitypes" само должно быть частью другого объекта JSON (фрагмент, который вы разместили, сам по себе не является допустимым JSON), вам потребуется некоторый класс, представляющий этот объект, который будет иметь поле называется "poitypes" типа Wrapper
(или как вы его называете).
Теперь, если ваш JSON-объект может фактически содержать больше именованных значков (называемых «3», «4» и т. Д.), Вы не сможете сделать это совсем так. Если эти числа всегда будут последовательными, JSON действительно должен быть массивом JSON, а не объектом. Если это не так, вам нужно использовать пользовательский JsonDeserializer
, чтобы десериализовать этот объект как Map<Integer, NamedIcon>
или что-то подобное.