Создайте POJO для вложенного JSON для модернизации

Я пытаюсь создать POJO для следующего JSON.

{
  "key1":"value1",
  "key2":"value2",
  "hashmap":
  {
     "1":"val"
     "2":"val"
     ...
     "n":"val"
  }
}

Теперь POJO, который я пробовал, был

public class MyPOJO{
  @SerializedName{"key1"}
  @Expose
  private String key1;

  @SerializedName{"key2"}
  @Expose
  private String key2;

  @SerializedName{"hashmap"}
  @Expose
  private HashMap<String,String> hMap;

}

Проблема в том, что хэш-карта не сериализуется. Он просто игнорируется, когда класс сериализуется.

Вот как я использую класс в Retrofit.

@POST("/endpoint/")
void foo(@Body MyPojo, Callback<Response> callback);

Одно предложение, с которым я столкнулся, - использовать внутренний класс вместо Hashmap. Но мои ключи динамические, я не могу определить переменные для каждого ключа. Мне нужно сериализовать Hashmap.


person Codevalley    schedule 13.05.2016    source источник


Ответы (2)


http://www.jsonschema2pojo.org/ используйте этот веб-сайт для создания pojo из json.

person Vinay    schedule 13.05.2016
comment
Не сработает, мои ключи хэш-карты динамические. Не зафиксировано. К вашему сведению, в противном случае я использую jsonschema2pojo для создания своих POJO. - person Codevalley; 13.05.2016

Возможно, вам следует взглянуть на модифицированные конвертеры и использовать конвертер, который поддерживает карты.

Или используйте специальный конвертер.

person mvera    schedule 13.05.2016