您好我使用Gson库,我有一个名为Estudiante.class的类,并且我有一个Json文件
看起来像这样。我正在使用Eclipse(Java)MAC OSX。
{"nombre":"Alex","apellido":"S","cedula":"1234","mes":2,"ano":2,"dia":2,"zona":"LSM","telefono":"0000","semestre":5,"promedio":5.0}
{"nombre":"Alfred","apellido":"S","cedula":"523412","mes":6,"ano":6,"dia":6,"zona":"LSM","telefono":"0001","semestre":6,"promedio":6.0}
现在,我想阅读该内容并将其放入位置为1的Alex和位置为2的Alfred的Estudiante数组中(如果我有更多Object,则依此类推)。
任何人都可以帮助我实现此实现。我已经阅读了成千上万的主题,无法弄清楚我做错了什么。谢谢。
Estudiante estudiantes [] =新的Estudiante [20];
公共无效leerJson(){
int i=0;
int contador=0;
try {
JsonReader reader = new JsonReader(new FileReader("estudiantes.json"));
while (reader.hasNext()) {
String name = reader.nextName();
estudiantes[i]=new Estudiante();
if (name.equals("nombre")) {
estudiantes[i].setNombre(reader.nextString());
} else if (name.equals("apellido")) {
estudiantes[i].setApellido(reader.nextString());
} else if (name.equals("cedula")) {
estudiantes[i].setCedula(reader.nextString());
} else if (name.equals("mes")) {
estudiantes[i].setMes(Integer.parseInt(reader.nextString()));
} else if (name.equals("ano")) {
estudiantes[i].setAno(Integer.parseInt(reader.nextString()));
}else if (name.equals("dia")) {
estudiantes[i].setDia(Integer.parseInt(reader.nextString()));
} else if (name.equals("telefono")) {
estudiantes[i].setTelefono(reader.nextString());
} else if (name.equals("semestre")) {
estudiantes[i].setSemestre(Integer.parseInt(reader.nextString()));
} else if (name.equals("promedio")) {
estudiantes[i].setPromedio(Double.parseDouble(reader.nextString()));
i++;
} else {
reader.skipValue(); //avoid some unhandle events
}
}
reader.endObject();
reader.close();
} catch (FileNotFoundException e) {
System.out.println("asdsa");
e.printStackTrace();
} catch (IOException e) {
System.out.println("vrvrt");
e.printStackTrace();
}
}
}
那就是我的进步
最佳答案
我上大学时曾经做过这样的练习,我使用ArrayList是为了我的目的,您可以尝试这样的事情(我与Pokemon一起工作,因为那时我以这种方式进行练习,至少是讲课的,为了我):
List<PokemonBean> plist = new ArrayList<PokemonBean>();
PokemonBean p1 = new PokemonBean();
p1.setNumber(1);
p1.setName("Bulbasaur");
p1.setType("Grass");
PokemonBean p2 = new PokemonBean();
p2.setNumber(25);
p2.setName("Pikachu");
p2.setType("Electric");
plist.add(p1);
plist.add(p2);
Gson agson = new Gson();
Type myListType = new TypeToken<List<PokemonBean>>(){}.getType();
String myJsonString = agson.toJsonTree(plist, myListType);
而且,如果您想阅读,可以用相同的方法进行:
Type myListType = new TypeToken<List<PokemonBean>>(){}.getType();
List<Pokemon> myListAgain = agson.fromJson(json, myListType);
让我知道这是否适合您。
问候和快乐的编码:)。