Stai provando a creare un oggetto non-Array (Collection) da un JSONArray. L'errore è abbastanza chiaro: GSON si aspettava l'inizio di un oggetto, ma invece ha trovato l'inizio di un array.
Date un'occhiata alla pagina di documentazione di seguito per vedere come lavorare con i tipi di array e Collezione con GSON
Esempi di array
GSON gson = new Gson(); int [] ints = {1, 2, 3, 4, 5}; String [] stringhe = {"abc", "def", "ghi"};
(serializzazione) gson.toJson (ints); ==> stampa [1,2,3,4,5] gson.toJson (stringhe); ==> stampa ["abc", "def", "ghi"]
(Deserializzazione) int [] ints2 = gson.fromJson ("[1,2,3,4,5]", int [] ].classe); ==> ints2 sarà uguale interi
Sosteniamo anche array multidimensionali, con arbitrariamente complessi tipi di elementi Collections Esempi
GSON GSON = new GSON(); Collection ints = Lists.immutableList (1,2,3,4,5);
(Serializzazione) String json = gson.toJson (ints); ==> json is [1,2,3,4,5]
(Deserializzazione) Tipo collectionType = new TypeToken>() {}. getType(); Collezione ints2 = gson.fromJson (json, collectionType); ints2 è uguale a int
Abbastanza orribile: notare come definire il tipo di raccolta Purtroppo, non c'è modo per aggirare questo in Java
Collezioni Limitazioni
possibile serializzare collezione di oggetti arbitrari, ma non può deserializzare perché non è possibile per l'utente indicare il tipo di oggetto durante la deserializzazione, la raccolta deve essere di tipo generico specifico Tutto ciò ha senso, e raramente è un problema w> dopo aver seguito bene Pratiche di codifica Java
Great thanks ha funzionato per me! –
Questa è una cattiva risposta. Cambiare il modo in cui l'API restituisce i dati non è sempre un'opzione. – Prem