android 使用JSONObject 数组报错, NullPointerException

代码如下:

JSONArray jsonArray = new JSONArray();
JSONObject jsonObject = new JSONObject();
JSONObject objects[] = new JSONObject[5];
try {
objects[0].put("ProtocolVersion", GFPSMessage.getProtocolVersion());
objects[1].put("Timestamp", GFPSMessage.getTimestamp());
objects[2].put("CommunicationMode", GFPSMessage.getCommunicationMode());
objects[3].put("NumberOfMessage", GFPSMessage.getNumberOfMessage());
objects[4].put("PowerManagement", GFPSMessage.getPowerManagement());

jsonArray.put(objects);

jsonObject.put("GFPSMessage", jsonArray);
// Log.d("postapp", jsonObject.toString());

} catch (JSONException e) {
e.printStackTrace();
Log.d("postapp", "JSONException");
}

错误如下:
03-15 14:14:20.671 1117-1165/com.example.moonslides.networkposttest W/System.err﹕ java.lang.NullPointerException
03-15 14:14:20.674 1117-1165/com.example.moonslides.networkposttest W/System.err﹕ at com.example.moonslides.networkposttest.GeneralFrameworkProtocolSendMessage.testJson(GeneralFrameworkProtocolSendMessage.java:154)
03-15 14:14:20.675 1117-1165/com.example.moonslides.networkposttest W/System.err﹕ at com.example.moonslides.networkposttest.MainActivity$2.run(MainActivity.java:85)
03-15 14:14:20.675 1117-1165/com.example.moonslides.networkposttest W/System.err﹕ at java.lang.Thread.run(Thread.java:841)

一个是怎么解决,而是可以不可以这样来实现创指定个数的JSONob? 我写不出来 - -
for (int i = 0;i<5;i++) {
JSONObject object"i" = new JSONObject();
}

错误是指MainActivity的第85行,你看下你代码,如果解析出来的一个类为空,这个类在使用的时候就会报空指针,你加个非空判断。
另外,你用的是eclipse么,如果是Android studio的话,你引入个gson或者fastjson依赖,一句话就解析完成了;还有个插件,GsonFormat,直接把JSON完整的粘贴到里面,自动生成实体类
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-13
NullPointerException为空指针异常,说明某处代码调用了空的数组对象。双击第一处错误,看看错误跳到哪儿就知道你哪里出错了。本回答被网友采纳
第2个回答  2015-03-15
NullPointerException为空指针异常,说明某处代码调用了空的数组对象。双击第一处错误,看看错误跳到哪儿就知道你哪里出错了。本回答被网友采纳