JSONException - 将字符串解析为JSONArray

时间:2014-02-04 19:45:21

标签: java android json eclipse parsing

我想在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);

但每次我得到这个例外:

exception

我测试以下内容以获得正确的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

我该怎么做才能做到正确?我希望有一个人可以帮助我 :) 谢谢!

1 个答案:

答案 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数组。