2013-10-02 14 views
24

Nel mio progetto Android sto provando a convertire un JSONArray ricevuto in un elenco. Con l'aiuto di this SO answer ho ottenuto un po 'di più. Ora ho il seguente codice:Come convertire JSONArray in List con Gson?

Gson gson = new Gson(); 
JSONArray jsonArray = NetworkUtilities.getData("mymodeldata"); 
Type listType = new TypeToken<List<MyModel>>(){}.getType(); 
List<MyModel> myModelList = gson.fromJson(jsonArray, listType); 

purtroppo lamentele l'ultima riga che il metodo fromJson (String, Type) nel tipo GSON non è applicabile per gli argomenti (JSONArray, Type). Non so davvero come risolverlo.

Qualcuno sa come posso risolvere questo?

risposta

51

Se viene visualizzata la risposta, è possibile notare che il primo parametro nel metodo fromJson() era un String (l'oggetto json). Prova a utilizzare il toString() su JsonArray come questo: -

List<MyModel> myModelList = gson.fromJson(jsonArray.toString(), listType); 
+0

Impressionante, grazie! Perché non ci ho pensato! – kramer65

+0

@ kramer65: Se ti ha aiutato per favore accetta la risposta! –

+0

@ R.J mi dà 'potrebbe essere refactored in una classe interna _static_ denominata SIC_INNER_SHOULD_BE_STATIC_ANON ' come risolverlo –