我的问题已被多次询问,但我无法找到解决问题的方法。
我正在尝试解析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代码相关联,但我不知道如何纠正此错误。
我需要帮助,谢谢
答案 0 :(得分:1)
不要忘记你的json。如果您需要浏览某些字段,可以在解析后执行此操作。 您对StringEscapeUtils.unescapeJava(buffer.toString())的调用;删除\&#34;用&#34;替换它们并使你的字符串不是一个有效的json。