java - 无法解析成 JSONObject

标签 java android json

我正在尝试将 GET 请求的响应解析为 JSONObject。它不断抛出异常,我不确定是什么原因造成的。 JSONLint 似乎认为它是有效的 JSON 字符串。这是我使用的:

JSONObject jsonObject = new JSONObject(result);

这是获取字符串响应的代码:

BufferedReader in = null;
String result = "";
try {
    HttpClient client = new DefaultHttpClient();
    HttpGet request = new HttpGet();
    request.setURI(new URI(params[0]));
    HttpResponse response = client.execute(request);
    int statusCode = response.getStatusLine().getStatusCode();

    if (statusCode == 200) {
        in = new BufferedReader
                (new InputStreamReader(response.getEntity().getContent()));
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = in.readLine()) != null){
            sb.append(line);
        }
        result = sb.toString();
    }
}catch (IOException ex){
    Log.i("Error", ex.getMessage());
} catch (URISyntaxException e) {
    e.printStackTrace();
} finally {
    if (in != null) {
        try {
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
return result;

如果我将结果的内容复制到 JSONLint,它似乎是有效的。如果我从源头验证它 URL这似乎也是有效的。

我在这里不知所措。作为一名 Java 和 Android 菜鸟,我确信我错过了一些非常明显的东西。

最佳答案

哇哇,

当您尝试解析数据时,这似乎是您的错误。

你的结果是一个字符串吗(我认为你从 Response 获得后将 InputStream 转换为字符串)

我看到了你的数据。它是一个数组。

httpResponse response = client.execute(httpGet);

String result = convertInputStreamToString(response.getEntity());

JSONArray jsonArray = new JSONArray(result);

for (int i = 0; i < len; i++) {
    JSONObject obj = jsonArray.getJSONObject(i);
    String name = obj.getString("Name");
    //.... LocalityId or something...
}

关于java - 无法解析成 JSONObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21348971/

相关文章:

android - 从服务启动同一个 Activity 的多个实例

php - 从 PHP 接收 json 回显

java - 在struts2操作类中获取json数据为null

java - glassfish应用程序服务器中的Web服务器是什么?

java - 从数据库中选择后如何使用mybatis获取结果类型作为列表

java - Servlet程序编译错误

android - 在不使用 LinearLayout 的情况下将 ImageView 居中于父 View 的一半

java - 无法将 View 添加到 Android 中的服务

javascript - 如何在 JavaScript 中获取 JSON 数据数组?

java - 如何在另一个方法中调用onReceive方法?