我试图将网络服务读入我的Android应用,但我得到了
java.lang.IllegalStateException:预期为BEGIN_ARRAY但是为STRING 在第1行第1列
据我所知,当JSON数组有名称时会发生这种情况,但我不明白为什么这会发生在我的JSON上,如下所示:
[
{
"id": "1",
"nombre": "Name1",
"telefono": "5529964",
"correo": "mail@hotmail.com"
},
{
"id": "2",
"nombre": "Name2",
"telefono": "5435432",
"correo": ""
}
对于上下文,这就是我调用gson的方式:
public List<Estudiante> leerFlujoJson(InputStream in) throws IOException {
// Nueva instancia de la clase Gson
Gson gson = new Gson();
JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
reader.setLenient(true);
List<Estudiante> estudiantes = new ArrayList<>();
// Iniciar el array
reader.beginArray();
while (reader.hasNext()) {
// Lectura de objetos
Estudiante estudiante = gson.fromJson(reader, Estudiante.class);
estudiantes.add(estudiante);
}
reader.endArray();
reader.close();
return estudiantes;
}