作者:手机用户2502897625 | 来源:互联网 | 2023-05-25 10:52
我正在开发一个Android应用程序,应用程序必须将json格式的java对象保存到SQLite数据库中.我为此操作编写了代码,然后他们必须提取Json对象并将其重新转换为Java对象.当我尝试调用方法将json对象反序列化为字符串时,我在Android Studio中发现了这个错误:unhandled exception org.json.jsonexception
当我尝试捕获JSONException e
程序运行但不反序列化json对象.
这是该方法的代码:
private void read() throws JSONException {
SQLiteDatabase db = mMioDbHelper.getWritableDatabase();
String[] columns = {"StringaAll"};
Cursor c = db.query("Alle", columns, null, null, null, null,null );
while(c.moveToNext()) {
String stringaRis = c.getString(0);
JSONObject jObj = new JSONObject(stringaRis);
String sPassoMed = jObj.getString("passoMed");
final TextView tView = (TextView) this.findViewById(R.id.mainProvaQuery);
tView.setText(sPassoMed);
// }
}
}
你能帮我吗?
1> Stephen C..:
是的,您需要捕获异常.
但是当你抓住它时,你不应该把它扔在地板上.您的应用程序需要对异常执行某些操作.或者,如果您/它不期望在运行时发生异常,那么至少您应该报告它.这是一个最小的例子(适用于Android应用)
try {
...
JSONObject jObj = new JSONObject(stringaRis);
...
} catch (JSONException e) {
Log.e("MYAPP", "unexpected JSON exception", e);
// Do something to recover ... or kill the app.
}
当然,这并不能解决您的问题.接下来你需要做的是找出你获得异常的原因.首先阅读已记录到logcat的异常消息.
重新发送此异常消息:
org.json.JSONException:类型java.lang.String的值A无法转换为JSONObject
我认为它被这条线抛出:
JSONObject jObj = new JSONObject(stringaRis);
我认为它告诉你,它stringaRis
具有值"A"
......并且不能被解析为JSON对象.它根本不是JSON.