2016-08-29 6 views
0

В настоящее время я использую Gson и Retrofit для моего проекта Android, который автоматически анализирует API, необходимый для меня. Однако я понял, что API содержит значение, в котором он может быть логическим или Object для разных типов данных в API.GSON различное значение для того же ключа

Например

... 
     { 
      "media": false, 
     }, 
     { 
      "media": { 
      "mp4": "http://sample.com/something.mp4", 
"jpg": "http://sample.com/something.jpg", 
     } 
     }, 
    ... 

Как именно моя модель Gson должна быть?

@SerializedName("media") 
Object images; 
+0

Использование универсального типа T. –

+0

Вы можете изменить ключ JSON? Это путает смысл. –

+0

Может иметь это как 'JsonElement'. –

ответ

0

Ничего плохого в использовании Object. При использовании проанализированных данных просто используйте instanceof, чтобы проверить тип данных.

Для примера: object instanceof Boolean для булевых.

EDIT: Создайте класс модели для URL-адресов. Как:

public class Urls { 

@SerializedName("mp4") 
private String mp4Url; 

@SerializedName("jpg") 
private String jpgUrl; 

public String getMp4Url() { 
    return mp4Url; 
} 

public String getJpgUrl() { 
    return jpgUrl; 
} 

} 

Теперь проверьте

if(parsedObject instanceof Urls) { 
    Urls urls = (Urls) parsedObject; 
    urls.getMp4Url; 
} 
+0

Как именно «преобразовать» объект в другой класс Gson, где я могу 'm.getMp4()' или 'm.getJpg()'? Я попробовал преобразование силы и Gson. fromJson пока ничего не работает. – Shaun

Смежные вопросы