ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – 未处理的异常org.json.jsonexception

2019-10-02 00:02:38  阅读:179  来源: 互联网

标签:android java json sqlite


我正在开发一个Android应用程序,应用程序必须将json格式的java对象保存到SQLite数据库中.我为此操作编写了代码,然后他们必须提取Json对象并将其重新转换为Java对象.
当我尝试调用方法将json对象反序列化为字符串时,我在Android Studio中发现此错误:未处理的异常org.json.jsonexception

当我尝试捕获JSONException时,程序运行但不反序列化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: Value A of type java.lang.String cannot be converted to JSONObject

我认为它被这条线抛出:

    JSONObject jObj = new JSONObject(stringaRis);

我认为它告诉你,stringaRis的值为“A”……并且不能将其解析为JSON对象.它根本不是JSON.

标签:android,java,json,sqlite
来源: https://codeday.me/bug/20191001/1840507.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有