Как получить значение из JSON «объект в объекте», используя GSON в Android

#android #json #gson

#Android #json #gson

Вопрос:

Мой ответ JSON выглядит так

 [{"order":-1,"artist":[{"name":"Hey"}]},...]
  

Как я могу получить name из artist объекта, используя GSON?


Я пытался использовать что-то вроде этого

 private String getArtistName(){
    ...
    Type type = new TypeToken<List<Order>>() {}.getType();
    List<Order> details = gson.fromJson(MyJSONresponse, type);
    for (Order order : details) {
        if (order.order == -1) {
            String artistName = // I don't know what to enter here
            return artistName;
        }
    }
    return null;
}

private class Order{
   int order;
   List<Artist> artist = new ArrayList<Artist>();
}

pricate class Artist{
   String name;
}
  

Спасибо!

Ответ №1:

 class MyClass {
    int order;
    List<Artist> artist;
}

class Artist {
    String name;
}

MyClass myClass = new Gson().fromJson(myJsonString, MyClass[].class);
myClass.artist.get(0).name;
  

Комментарии:

1. Ошибка com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 23 : (

2. ну вот, это должно быть что-то вроде этого.