我想解析一些从网上下载的 JSONArray 中的 json。 我认为这很简单,但无法让它发挥作用。
看来问题出在 JSON 格式上。我尝试了不同的方法 修复它,但没有任何帮助。
我用这种方法下载字符串:
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
我应该怎么做才能正确?我希望有一个人可以帮助我 :) 谢谢!
最佳答案
查看 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 数组。
关于java - JSONException - 将字符串解析为 JSONArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21561920/