2017-08-11 29 views
0

我有一个可以回退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,但仍然是同样的问题。

任何帮助,将不胜感激!

+0

尝试JSON解析器解析数据,例如,JsonArray jsonArray = new JsonParser()。parse(rd).getAsJsonArray(); – Tehmina

+0

url显示你的json数据中的语法错误... –

+0

@Tehmina JsonParser()也没有工作。 –

回答

0

你的数据有一个SyntaxError。在附近的列48697, H与发现坏的数据段: , “ucr_gen1447C3FA9C2915241”,

我想你想: , “ucr_general”: “1447C3FA9C2915241”,

+0

当我将url的输出粘贴到几个在线JSON验证器时,它说Json是有效的。我不确定语法错误在哪里。 –

+0

“ucr_general”字段在列中丢失:48697(json:https://data.phila.gov/resource/sspu-uyfa.json?dispatch_date=2017-08-01) –

相关问题