由于某种原因,JSONArray的字符串返回null

时间:2017-08-11 02:24:44

标签: java json

我有一个返回JSON的URL,我首先将其转换为String,然后将其转换为JSONArray但由于某种原因,它返回null。 示例网址如下所示: https://data.phila.gov/resource/sspu-uyfa.json?dispatch_date=2017-08-01

以下是我的代码:

public JSONArray getJsonFromUrl(final String data_url) throws IOException, JSONException {
    InputStream is = new URL(data_url).openStream();
    BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
    StringBuilder sb = new StringBuilder();
    int cp;
    while ((cp = rd.read()) != -1) { 
        sb.append((char) cp); 
    }
    is.close();
    JSONArray jsonArray = new JSONArray(sb.toString());
    return jsonArray;
}

因此StringBuilder对象sb不为空。当我调试时,我可以看到它是一个巨大的字符串。但new JSON(sb.toString());返回null。另外,我尝试将JSONArray替换为JSONObject,但问题仍然存在。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您的数据有一个SyntaxError。在第48697栏附近, H找到了坏数据段: " ucr_gen1447C3FA9C2915241",

我想你想: " ucr_general":" 1447C3FA9C2915241",