我有一个可以回退JSON的URL,我首先将其转换为String,然后将其转换为JSONArray,但由于某种原因它返回null。 范例网址如下: https://data.phila.gov/resource/sspu-uyfa.json?dispatch_date=2017-08-01由于某种原因返回null的字符串
下面是我的代码:
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
。此外,我试图用JSONObject
代替JSONArray
,但仍然是同样的问题。
任何帮助,将不胜感激!
尝试JSON解析器解析数据,例如,JsonArray jsonArray = new JsonParser()。parse(rd).getAsJsonArray(); – Tehmina
url显示你的json数据中的语法错误... –
@Tehmina JsonParser()也没有工作。 –