2017-08-01 15 views
0

Wunderground APIから特定の時刻に過去の気温を取得しようとしていますが、次のエラーが表示されます。どんな助けもありがとう!エラーメッセージ:JSONObjectテキストは1で始まる必要があります[文字2行1]

public static void main(String[] args) throws IOException { 
    try { 
       String date = "20161211"; 
       String sURL = "http://api.wunderground.com/api/da7962c092ba005b/history_" 
         + date + "https://stackoverflow.com/q/autoip.json"; 
       URL url = new URL(sURL); 
       String temp1 = ""; 
       URLConnection yc = url.openConnection(); 
       BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream())); 
       String inputLine; 

       while ((inputLine = in.readLine()) != null) { 
        JSONObject json = new JSONObject(sURL); 
        temp1 = json.getJSONObject("observations").getString("tempi"); 
        System.out.println(temp1); 

      } 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

そして、私は次のエラーを取得しています:

JSONObject json = new JSONObject(inputLine); 

代わりに:あなたはおそらく書きたかった

org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1] 
at org.json.JSONTokener.syntaxError(JSONTokener.java:432) 
at org.json.JSONObject.<init>(JSONObject.java:184) 
at org.json.JSONObject.<init>(JSONObject.java:310) 
at Weather.main(Weather.java:54) 
+0

エラーはかなり明確です。あなたは 'sURL'からjsonオブジェクトを作成していますが、これはjsonではありません。 – tima

答えて

0

いくつかあります。

まず、あなたのjsonオブジェクトは、レスポンスではなくURLを取得しています。

JSONObject json = new JSONObject(sURL); 

Jsonの場合、行ごとに解析することはできません。すべての応答を取得する必要があります。あなたは、入力ストリームを取得すると、あなたが戻って結果を取得できません、URLに値を渡すためにしようとしている

yc.getContent() 

応答のようなものでなければなりません。

0

JSONObject json = new JSONObject(sURL); 

それはまだ勝ちましたあなたはwhole Stringを読む必要がありますfr om InputStream(すべての行)を呼び出して、JSONObject(ループ内ではなく1回)を構築します。

0

JSONObjectを取得した場合、テキストは '{'例外で始まる必要があります。次に、まずJSONObjectコンストラクタに渡したものをチェックします。

正しいjson.txtファイルを渡す必要があります。だから、あなたがjsonobjectに渡すものを確認してください。

文字列リクエスト= FileUtils.readFileToString(新しいファイル( "/ home/achaure/Downloads/Amol/KountRestTest/Documents/request.txt"));

JSONObject jsonObject = new JSONObject(request);

関連する問題