我想在JSONArray中解析从网上下载的一些json。 我认为这很简单,但无法让它发挥作用。
它认为JSON格式是问题所在。我尝试了不同的方法 解决它,但没有任何帮助。
我用这种方法下载String:
private String DownloadContent(String URL) {
String result = null;
try {
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(URL);
HttpResponse response = httpClient.execute(httpGet);
result = EntityUtils.toString(response.getEntity());
} catch(Exception e) {
Log.e("log_tag", e.toString());
}
return result;
}
之后我尝试将字符串解析为JSONArray,如下所示:
String resultString = DownloadContent(stringUrl);
JSONArray jArray = new JSONArray(resultString);
但每次我得到这个例外:
我测试以下内容以获得正确的JSON:
result = EntityUtils.toString(response.getEntity(), "UTF-8");
result = StringEscapeUtils.unescapeJson(EntityUtils.toString(response.getEntity()));
此方法更改了字符串,但没有时间JSON有效(使用this测试)。
在我的JSON中是这样的:
Meine gr\\u00f6\\u00dfte Leidenschaft ist es
http:\\/\\/bla.de\\/wp-content\\/uploads\\/2014\\/02\\/hello.jpg
我该怎么做才能做到正确?我希望有一个人可以帮助我 :) 谢谢!
答案 0 :(得分:2)
查看detailMessage
,看起来您正试图从JSON创建JSONArray
,看起来像
{"posts": [...]}
这是一个JSON对象,而不是一个数组。您需要将其解析为JSONObject
并从中获取数组对象。
JSONObject object = new JSONObject(resultString);
JSONArray array = object.getJSONArray("posts"); // or whatever the method is to get a JSONArray element from the JSONObject
这假设您正在尝试获取名为posts
的JSON数组。