java - JSONException - 将字符串解析为 JSONArray

标签 java android json eclipse parsing

我想解析一些从网上下载的 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);

但是每次我遇到这个异常时:

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

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

最佳答案

查看 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/

相关文章:

android - 无法访问来自不同类的值

ajax - twitter typeahead ajax 结果未全部显示

json - 如何在 php 中读取 youtube 数据 api v3 响应

java - 使用 Mockito 从列表创建 Json 时如何抛出 JsonProcessingException?

java - MySQL JDBC 计算行数失败

java - 我可以将 LatLng 对象用作 double 对象吗?

android - 编码 Android 相机帧 h263/h264

java - JUnit测试检查三角形是否是矩形

java - Mockito @InjectMocks 策略

java - 带有自定义 Java Generic 的 newInstance()?