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());
です。また、JSONArray
をJSONObject
に置き換えようとしましたが、それでも同じ問題が発生しました。
助けていただけたら幸いです!
データを解析するためにJSONパーサを試してみてくださいたとえば、JsonArrayの場合はjsonArray = new JsonParser()。parse(rd).getAsJsonArray(); – Tehmina
URLはあなたのjsonデータに構文エラーを表示します... –
@Tehmina JsonParser()も機能しませんでした。 –