2017-08-11 9 views
0

JSONを返すURLがあります。最初にStringに変換してJSONArrayに変換しますが、何らかの理由でnullが返されます。 サンプルのURLは次のようになります。以下は https://data.phila.gov/resource/sspu-uyfa.json?dispatch_date=2017-08-01何らかの理由でJSONArrayの文字列が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がnullではありません。私がデバッグするとき、私はそれが巨大な文字列であることがわかります。しかしnullを返すのはnew JSON(sb.toString());です。また、JSONArrayJSONObjectに置き換えようとしましたが、それでも同じ問題が発生しました。

助けていただけたら幸いです!

+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) –

関連する問題