你好我使用Gson库,我有一个名为Estudiante.class的类,我有一个Json文件 看起来像这样。我正在使用Eclipse(Java)MAC OS X.
{"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}
现在我想阅读并将其放入Estudiante数组中,位置为1 Alex,位置为2 Alfred(依此类推,如果我有更多对象)。
any1可以帮助我实现这个功能。我已经阅读了数以千计的主题,无法弄清楚我做错了什么。感谢。
Estudiante estudiantes [] = new Estudiante [20];
public void 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();
}
}
} 多数民众赞成我的进步
答案 0 :(得分:0)
我曾经在大学期间做了一次这样的练习,我使用ArrayList作为我的目的,你可以尝试这样的事情(我和口袋妖怪一起工作,因为那时我做了这样的练习,更有说服力,至少对我来说):
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);
请告诉我这是否适合您。
关心和快乐的编码:)。