Разбор массива JSON с подматрицей с GSON?

Скажем, у меня есть строка JSON:

{"title":"aaa","url":"bbb","image":{"url":"ccc","width":"100","height":"200"}, ...

Мой аксессуар:

 import com.google.gson.annotations.SerializedName; public class accessorClass { @SerializedName("title") private String title; @SerializedName("url") private String url; @SerializedName("image") private String image; // how do I place the sub-arrays for the image here? ... public final String get_title() { return this.title; } public final String get_url() { return this.url; } public final String get_image() { return this.image; } ... } 

И мой главный:

  Gson gson = new Gson(); JsonParser parser = new JsonParser(); JsonArray Jarray = parser.parse(jstring).getAsJsonArray(); ArrayList<accessorClass > aens = new ArrayList<accessorClass >(); for(JsonElement obj : Jarray ) { accessorClass ens = gson.fromJson( obj , accessorClass .class); aens.add(ens); } 

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

FYI, если ваш JSON – это массив: {"results:":[{"title":"aaa","url":"bbb","image":{"url":"ccc","width":"100","height":"20...},{}]}

Тогда вам понадобится класс-оболочка:

 class WebServiceResult { public List<AccessorClass> results; } 

Если ваш JSON не отформатирован так, то ваш цикл For, который вы создали, сделает это (если не немного неуклюже, было бы лучше, если ваш JSON сформирован, как указано выше).

Создать класс изображения

 class ImageClass { private String url; private int width; private int height; // Getters and setters } 

Затем измените свой AccessorClass

  @SerializedName("image") private ImageClass image; // Getter and setter 

Затем GSON входящая строка

 Gson gson = new Gson(); AccessorClass object = gson.fromJson(result, AccessorClass.class); 

Работа выполнена.