public class Employees {
private String[] onomata,eponyma;
private int[] kwdikoi;
private int i,kwdikos;
private String onoma,eponymo;
private long kwdikoslong;
{
FileReader reader = null;
try {
reader= new FileReader("employees.json");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
JSONParser jsonparser= new JSONParser();
try {
JSONObject jsonobj = (JSONObject) jsonparser.parse(reader);
JSONArray baseArray =(JSONArray) jsonobj.get("employees");
for (int i=0;i<baseArray.size();i++)
{
JSONObject jsonobj2 = (JSONObject) baseArray.get(i);
onoma=(String) jsonobj2.get("onoma");
onomata[i]=onoma;
eponymo=(String) jsonobj2.get("eponymo");
eponyma[i]=eponymo;
kwdikoslong=(long) jsonobj2.get("kwdikos");
kwdikos=(int)kwdikoslong;
kwdikoi[i]=kwdikos;
}
}
catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
您的问题在这里:
private String[] onomata, eponyma;
该变量onomata
从不初始化。
try {
JSONObject jsonobj = (JSONObject) jsonparser.parse(reader);
JSONArray baseArray =(JSONArray) jsonobj.get("employees");
// initialize it here
onomata = new String[baseArray.size()];
for (int i = 0; i< baseArray.size(); i++)
{
JSONObject jsonobj2 = (JSONObject) baseArray.get(i);
onoma=(String) jsonobj2.get("onoma");
onomata[i]=onoma;
eponymo=(String) jsonobj2.get("eponymo");
eponyma[i]=eponymo;
kwdikoslong=(long) jsonobj2.get("kwdikos");
kwdikos=(int)kwdikoslong;
kwdikoi[i]=kwdikos;
}
}
catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
这不会解决所有异常。当您遇到它们时,开始初始化数组并修复它们。
旁注:
从此处开始,当a FileNotFoundException
出现时,您不应继续执行代码。
最好这样做:
jsonobj2.getString("onoma", "DEFAULT");
// than this: (String) jsonobj2.get("onoma")
这是所有NullPointerException
s 的通用解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句