当前位置: 首页 > 面试题库 >

未处理的异常org.json.jsonexception

孙熠彤
2023-03-14
问题内容

我正在开发一个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应用)

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。



 类似资料:
  • 问题内容: 它在DEBUG = True模式下运行。有时,当遇到错误时,它可能会抛出带有追溯信息的错误消息,但有时,它仅显示以下行: 我必须切换到开发服务器才能查看详细消息。 遇到错误时,如何使它始终显示回溯消息? 问题答案: 也许你可以使用此代码段,这会将异常记录在apache的日志中: 把它放在你的settings.py: 在你的代码中:

  • 我已经浏览了所有相关的帖子,但是我的@Controlller建议似乎没有处理从Controller类抛出的自定义异常。但是@Controller类中的@ExceptionHandler确实处理了异常。我不知道是什么错误。 网状物xml: dispatcher servlet。xml: @控制器建议等级: @ControllerAdvice与控制器位于同一个包中。

  • 在将其标记为副本之前,请阅读问题。 我在我的谷歌控制台中设置了SHA1和SHA256。 我已经尝试了很多方法,但仍然面临错误。 未处理的异常: 平台异常(sign_in_failed, 还尝试了Flutter和google_sign_in插件:PlatformException(sign_in_failed,com.google.android.gms.common.api.ApiExceptio

  • 我主要是为技术精明的人编写一个小工具,例如程序员、工程师等,因为这些工具通常是快速的,随着时间的推移,我知道会有未处理的异常,用户不会介意。我希望用户能够向我发送回溯,这样我就可以检查发生了什么,并可能改进应用程序。 我通常做wxPython编程,但我最近做了一些Java。我已经将

  • 问题内容: 我目前正在学习如何正确执行自定义异常的过程,偶然发现了一个问题。每当我尝试利用引发此自定义异常的类的对象时,IDE的调试器(我使用的是IntelliJ想法)都会说“未处理的异常:InsertExceptionName()”。代码以简化的方式看起来像这样。在这种情况下,如果随机生成的数字<0.5,它将返回一个异常,否则返回一个数字,但不会这样做。我想念什么? -- -- 问题答案: 您是

  • 我正在构建一个颤振应用程序,我必须解析api中的一些数据,我设置了所有内容,但我收到了这个错误,我不知道为什么,我是颤振新手,任何帮助都将不胜感激。谢谢。 生成的错误 这是我的api响应示例 这就是我处理数据的方式 这是模型课