验证json但JSONException未终止对象

时间:2015-06-30 12:35:25

标签: android json parsing jsonexception

我的问题已被多次询问,但我无法找到解决问题的方法。

我正在尝试解析API:1,这是有效的JSON

为此,我构建了一个解析数据的函数:

private String[] getArticlesDataFromJson(String allPostsJsonStr, int nbArticlesDisplayed)
            throws JSONException {

        // These are the names of the JSON objects that need to be extracted.
        final String OWM_POSTS = "posts";
        final String OWM_ID = "id";
        final String OWM_TITLE = "title";
        final String OWM_THUMBNAIL = "thumbnail";

        JSONObject allContentsPosts = new JSONObject(allPostsJsonStr);
        JSONArray contentArticlesArray = allContentsPosts.getJSONArray(OWM_POSTS);


        String[] resultStrs = new String[nbArticlesDisplayed];
        for (int i = 0; i < contentArticlesArray.length(); i++) {
            // For now, using the format "id, title, thumbnail"
            int id;
            String title;
            String thumbnail;

            // Get the JSON object representing the article
            JSONObject article = contentArticlesArray.getJSONObject(i);


            id = article.getInt(OWM_ID);
            title = article.getString(OWM_TITLE);
            thumbnail = article.getString(OWM_THUMBNAIL);

            resultStrs[i] = id + " - " + title + " - " + thumbnail;
        }

        for (String s : resultStrs) {
            Log.v(LOG_TAG, "article :  " + s);
        }
        return resultStrs;

    }

在AsyncTask中,我使用缓冲区恢复Json String allPostsJsonStr,并且我取消结果以避免使用Unicode字符。

allPostsJsonStr = StringEscapeUtils.unescapeJava(buffer.toString());

我调用函数来解析结果:

getArticlesDataFromJson(allPostsJsonStr, 1);

在try / catch等中......

我有一个错误:

  

错误JSONException {“status”的字符510处的未终止对象:“ok”,“count”:1,“count_total”:79,“pages”:79,“posts”:[{“id”:1320, “类型”: “后”, “塞”: “的Vibram-五指-史比利廷-MR-OU-注释的阿列-legerete-ET-Plaisir的笃线索”, “URL”: “http://leminimaliste.info/vibram-fivefingers-spyridon-mr-ou-comment-allier-legerete-et-plaisir-du-trail/”, “身份”:“发布”,“标题”:“Vibram FiveFingers Spyridon MR ou评论allierlégèretéetplaisir du Trail”,“title_plain”:“Vibram FiveFingers Spyridon MR ou评论allierlégèretéetplaisir du Trail”,“content”: “Je souhaite aujourd'hui vous faire un retour sur mon dernier Trail en date avec mes petites nouvelles,les Spyridon MR de VFF。

我注意到它与出现在JSONString的“内容”中的html代码相关联,但我不知道如何纠正此错误。

我需要帮助,谢谢

1 个答案:

答案 0 :(得分:1)

不要忘记你的json。如果您需要浏览某些字段,可以在解析后执行此操作。 您对StringEscapeUtils.unescapeJava(buffer.toString())的调用;删除\&#34;用&#34;替换它们并使你的字符串不是一个有效的json。