我正在处理我想从Android应用程序连接到Oracle数据库的web服务,所以我的服务器在java中连接到数据库.连接结束了!我坚持的是,我从数据库中获得数据,并在服务器端转换为json,当我在我的Android应用程序中检索它时,会得到空指针异常。
函数在服务器端创建我的json:
public static String constructJSN(String tag, boolean status,ArrayList<Teacher> f) {
JSONObject obj = new JSONObject();
try {
for(int i=0;i<f.size();i++){
obj.put("tag", tag);
obj.put("status", new Boolean(status));
String json = new Gson().toJson(f);
obj.put("data",json);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
}
return obj.toString();
}
当我把它打印出来时,我得到:
{"tag":"login","status":true,"data":"[{\"name\":\"rasha\",\"classes\":\"b\",\"freetime\":\"3-4\"},{\"name\":\"heba\",\"classes\":\"a\",\"freetime\":\"3-4\"},{\"name\":\"omnia\",\"classes\":\"c\",\"freetime\":\"2-6\"}]"}
在android客户端:
String j= obj.get("data").toString();
JSONObject myJsonObj = new JSONObject(j);
String Name = myJsonObj.getString("name");
String Classes = myJsonObj.getString("classes");
Toast.makeText(getApplicationContext(), Name+ " " + Classes, Toast.LENGTH_LONG).show();
在这里,我在调试时得到了一个错误:
方法抛出java.lang.NullPointerException异常。无法计算org.json.JSONObject.toString()
发布于 2015-06-06 15:38:05
JSONObject myJsonObj = new JSONObject(j);
JsonArray data = myJsonObj.getJsonArray("data");
for (JSONObject jObjc: JsonArray) {
String Classes = jObjc.getString("classes");
}
发布于 2015-06-08 06:21:14
尝试以下几点:
声明一个静态JsonObject并将其赋值为空静态JSONObject jObj = null;
然后在您的web服务调用中,将其分配给类似于这个jObj =新的JSONObject(结果)的JSON响应;
JObj.getString(“数据”);
https://stackoverflow.com/questions/30684605
复制相似问题