未处理的exceptionorg.json.jsonexception

我,我工作的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); // } } } 

你能帮我吗?

  • 试图写一个只读数据库...但我不是
  • 如何从Android中的SQLite中删除所有项目
  • 什么是在SQLite游标中使用moveToFirst()
  • 统计sqlite数据库中的表的数量
  • 在Android上的SQLite中查询和使用游标
  • 使用SQLite而不是File有什么好处?
  • 在Android中的SQLite数据库中保存ArrayList
  • 如何从Sqlite数据库中检索DATETIME格式
  • 是的,你需要抓住这个例外。

    但是,当你抓住它,你不应该把它扔在地板上。 您的应用程序需要对exception做些事情 。 或者如果你不希望在运行时发生exception,那么至less应该报告它。 这是一个最小的例子(对于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. } 

    当然,这并不能解决你的问题。 接下来你需要做的是弄清楚为什么你会得到exception。 首先阅读您已经login到logcat的exception消息。


    重申这个exception消息:

    org.json.JSONException:typesjava.lang.String的值A不能转换为JSONObject

    我认为这是由这条线抛出:

      JSONObject jObj = new JSONObject(stringaRis); 

    我认为这是告诉你, stringaRis具有值"A" …并且不能被parsing为JSON对象。 这根本不是JSON。