我有一个返回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
,但问题仍然存在。
任何帮助将不胜感激!
答案 0 :(得分:0)
您的数据有一个SyntaxError。在第48697栏附近, H找到了坏数据段: " ucr_gen1447C3FA9C2915241",
我想你想: " ucr_general":" 1447C3FA9C2915241",