Подтвердить что ты не робот

Переопределить переменную json для ключевого слова

Итак, я работаю с модификацией API с переменной, называемой public. Как я могу заставить его автоматически сопоставлять, как и все остальные переменные.

Пример:

@GET("/?filter=my_images")
void getMyImages(
        @Query("client_id") String id,
        @Query("api_key") String key,
        Callback<ImageList> callback
);
public static class Image{
    int id;
    String name;
    String distribution;
    String slug;
    // Can't do this:
    boolean public;
}

public static class ImageList{
    String status;
    List<Image> images;
}

Примеры результатов API (json):

{
  "status": "OK",
  "images": [
    {
      "id": 1,
      "name": "My first snapshot",
      "distribution": "Ubuntu",
      "slug": "ubuntu-12.10-x32",
      "public": true
    },
    {
      "id": 2,
      "name": "Automated Backup",
      "distribution": "Ubuntu"
    }
  ]
}
4b9b3361

Ответ 1

Дооснащение использует Gson для сериализации в JSON и из него.

Gson предоставляет аннотацию @SerializedName, чтобы изменить ключ, к которому сопоставляется поле или метод. Вы можете использовать это для обработки зарезервированного слова:

@SerializedName("public")
public String isPublic;

Ответ 2

Пожалуйста, посмотрите на ссылку , которая является более аккуратным решением, если в каждой клавише есть символы подчеркивания.