2016-10-30 10 views
0

JSON APIから数値を取得しようとすると非常に奇妙なエラーが発生します。 URL(およびコード)は正しいはずですが、オブジェクトはnullのようです。JSONオブジェクトはNULLを返します

org.json.JSONException: JSONObject["success"] not found. 

私はJSONObjectをプリントアウトしようとしている、そしてそれは私にこれを与える:ここで

{} 

は私のコードです:

try{ 
     String url = "https://qrng.anu.edu.au/API/jsonI.php?length=1&type=uint16"; 
     JSONObject jsonObject = new JSONObject(new URL(url).openStream()); 
     String resultType = jsonObject.getString("success"); 
     if(resultType.equalsIgnoreCase("true")){ 
      JSONArray jsonArray = jsonObject.getJSONArray("data"); 
      int number = jsonArray.getInt(0); 
      //do stuff with number 
     } 
     else{ 
      //unsuccessful 
     } 
    } 
    catch(Exception e){ 
     //handle catch 
    } 
+0

あなたはどのJSONライブラリを使用していますか?私は、 'InputStream'をパラメータとして取る' JSONObject'コンストラクタを持つライブラリを見つけることができないように思えます。 – Andreas

+0

@Andreasかなり正直なところ私はあまりよく分かりませんが、私が使用しているインポートはimport org.json.JSONArrayです。 import org.json.JSONObject; – Arraying

+0

@Arraying追加のライブラリはありませんか?これらのJDKクラスはありますか? – n247s

答えて

1

@Andreasは右である、コードのこの部分を追加あなたのtryブロックで入力ストリームをjson文字列に変換する -

InputStream is = new URL(url).openStream(); 
int ch; 
StringBuilder sb = new StringBuilder(); 
while((ch = is.read()) != -1) 
sb.append((char)ch);    
JSONObject jsonObject = new JSONObject(sb.toString()); 
+0

私は以下を使用しましたが、まだ同じエラーが表示されています: – Arraying

+0

http://pastebin.com/MEwm6iQL – Arraying

+0

あなたのJsonObjectコンストラクタにsb.toString()を渡すようにしてください –

関連する問題