Estoy intentando serializar/deserializar JSON en Android usando GSON. Tengo dos clases que se ven así:GSON Deserializing Array of Custom Objects
public class Session {
@SerializedName("name")
private String _name;
@SerializedName("users")
private ArrayList<User> _users = new ArrayList<User>();
}
y:
public class User {
@SerializedName("name")
private String _name;
@SerializedName("role")
private int _role;
}
que estoy usando GSON para serializar/deserializar los datos. Me serializar este modo:
Gson gson = new Gson();
String sessionJson = gson.toJson(session);
Esto producirá JSON que tiene este aspecto:
{
"name":"hi",
"users":
[{"name":"John","role":2}]
}
Y Deserialize así:
Gson gson = new Gson();
Session session = gson.fromJson(jsonString, Session.class);
Recibo un error cuando hago esta llamada.
DEBUG/dalvikvm(739): wrong object type: Ljava/util/LinkedList; Ljava/util/ArrayList;
WARN/System.err(739): java.lang.IllegalArgumentException: invalid value for field
No sé lo que significa este error. No me veo haciendo nada gravemente incorrecto. ¿Alguna ayuda? ¡Gracias!
El problema parece desaparecer cuando cambio la lista de usuarios en la clase Session de una ArrayList a una lista. ¿Debería causar esto un problema para GSON? –