【发布时间】:2015-06-06 15:32:08
【问题描述】:
我正在开发我想要从我的 Android 应用程序连接到 Oracle 数据库的 Web 服务,所以我的服务器在连接到数据库的 java 中......并且连接完成!我坚持的是,当我在我的 Android 应用程序中检索数据时,我从数据库获取数据并在服务器端转换为 json,我得到空指针异常。
在服务器端创建我的 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\"}]"}
在安卓客户端:
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()
【问题讨论】:
-
您必须先将数据作为 jsonArray 获取,然后才能将名称作为 json 对象获取
-
String j= obj.get("data").toString();我把它作为一个字符串取出来作为 JSONObject 的参数!!
-
为什么有\是你的json字符串
-
dont no :D 我使用 google gson 将我的 arraylist 转换为 json,这就是结果
-
发布您的 logcat 堆栈跟踪
标签: java android json web-services