2011-10-28 12 views
7

me encontré con este artículo: http://www.dev-articles.com/article/Google-gson-and-list-of-objects-386003usando GSON para analizar y poner en una lista de objetos

Parece que está tratando de hacer lo que quiero, que es analizar mi JSON y colocarlos en una lista de objetos.

Lo que no consigo, o tal vez le falta algo al artículo, es cómo se usa la clase "Proyecto". Parece que sale de la nada.

EDIT:

Gracias a yorkw ahora tengo:

public static String parseJSONResponse(String jsonResponse) { 

     Type listType = new TypeToken<List<SingleEvent>>(){}.getType(); 
     List<SingleEvent> events = (List<SingleEvent>) Gson.fromJson(jsonResponse, listType); 


} 

Sin embargo Im consiguiendo señales de alerta sobre Tipo "Tipo no se puede resolver a un tipo"

+0

¿Todavía está usando JDK 1.4? [Tipo] (http://download.oracle.com/javase/1,5.0/docs/api/java/lang/reflect/ Type.html) es desde JDK 1.5 – yorkw

+0

Ni siquiera recuerdo lo que instalé, pero definitivamente fue en el último mes. El compilador dice 1.6 – Adam

+0

Bueno, utilicé import java.lang.reflect.Type, que resuelve ese problema. la segunda línea da un error diciendo que necesito agregar SuppressWarnings que no hace nada – Adam

Respuesta

11

Proyecto es el modelo de dominio. es necesario implementar para deserializar la cadena json:

Type listType = new TypeToken<List<Project>>(){}.getType(); 
List<Project> projects = (List<Project>) gson.fromJson(response, listType); 

Puede usar generi c Escriba la lista como se describe en ese artículo; en Eclipse, aparece una marca de advertencia amarilla "La lista es un tipo sin formato. Las referencias al tipo genérico La lista debe parametrizarse. "

+0

¿Qué sucede si el Proyecto contiene campos privados y tengo métodos getter y setter? ¿Seguirá funcionando? gson busca automáticamente los métodos? – Adam

+0

lo que describiste es exactamente cómo deberías construir tu clase de dominio, GSON se ocupa de todo, desde tha t punto (getter y setter). – yorkw

+0

Tengo un montón de errores con este código ... No debo importar las bibliotecas correctas. Quiere que "Crear método getType()". Ahora se ha ido y tiene algo que ver con el tipo – Adam

Cuestiones relacionadas