Próbujesz utworzyć obiekt inny niż Array (kolekcja) z JSONArray. Błąd jest całkiem jasny: GSON oczekiwał początku obiektu, ale zamiast tego znalazł początek tablicy.
Spójrz na stronie dokumentacji poniżej, aby zobaczyć, jak pracować z rodzajów Array i kolekcji z GSON
Array Przykłady
Gson gson = new Gson(); int [] ints = {1, 2, 3, 4, 5}; String [] strings = {"abc", "def", "ghi"};
(Serializacja) gson.toJson (ints); ==> drukuje [1,2,3,4,5] gson.toJson (ciągi); ==> drukuje ["abc", "def", "ghi"]
(Deserializacja) int [] ints2 = gson.fromJson ("[1,2,3,4,5]", int [ ].klasa); ==> ints2 będzie taki sam jak wskazówki
również wspierać tablic wielowymiarowych o dowolnie skomplikowanych typów elementów Collections Przykłady
Gson gson = nowy Gson(); Kolekcja ints = Lists.immutableList (1,2,3,4,5);
(Serializacja) String json = gson.toJson (ints); ==> json to [1,2,3,4,5]
(Deserializacja) Typ collectionType = new TypeToken>() {}. getType(); Kolekcja ints2 = gson.fromJson (json, collectionType); ints2 jest taka sama jak wskazówki
Dość ohydne: zauważ, jak określić typ kolekcji Niestety, nie ma mowy, aby obejść ten problem w Javie
Kolekcje Ograniczenia
można szeregować zbiór dowolnych obiektów, ale nie mogę deserialize z tego powodu Ponieważ użytkownik nie może wskazać rodzaju obiektu , wynikowy obiekt Podczas przekształcania z postaci szeregowej kolekcja musi mieć typowy typ Wszystko to ma sens i rzadko stanowi problem. Praktyki kodowania Java
Wielkie dzięki pracował dla mnie! –
To jest zła odpowiedź. Zmiana sposobu, w jaki API zwraca dane, nie zawsze jest opcją. – Prem