2015-05-28 51 views
0

我在天氣應用程序工作。我使用免費的api來獲取天氣信息。當我嘗試喲運行這個類時,我得到「null」爲什麼?你可以在url中看到json代碼。它應該返回「羅馬尼亞」,但它返回「null」,我不知道爲什麼。天氣應用程序json代碼返回null

import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.Reader; 
import java.net.URL; 
import java.util.HashMap; 
import java.util.Map; 
import java.util.Scanner; 

import org.apache.commons.io.IOUtils; 
import org.json.simple.*; 
import org.json.simple.parser.ParseException; 

public class Weather { 
    public static URL url; 

    public void getWeather() throws IOException, ParseException { 

     url = new URL("http://api.openweathermap.org/data/2.5/weatherq=drobeta,romania"); 

     Scanner scan = new Scanner(url.openStream()); 
     String str = new String(); 
     while (scan.hasNext()) 
      str += scan.nextLine(); 
     scan.close(); 
     System.out.println(str); 

     String genreJson = IOUtils.toString(url); 
     JSONObject genreJsonObject = (JSONObject) JSONValue.parseWithException(genreJson); 
     // get the title 
     System.out.println(genreJsonObject.get("country")); 

    } 
} 
+0

如果您複製網址並在瀏覽器中打開它,您會看到什麼?如果您已超出API配額,openweathermap.org可能會阻止您的請求,但我不確定他們的政策是什麼。 –

+0

檢查您擁有的json對象的結構,您不會通過執行get(country) –

回答

-2

把你的網址http://api.openweathermap.org/data/2.5/weather?q=drobeta,romania放到瀏覽器中對我來說返回了一個錯誤500。我會說這就是爲什麼你得到空例外。但是,如果您將其修改爲http://api.openweathermap.org/data/2.5/weather?q=romania,您將獲得有效的json結果。

+0

來獲取它正在使用的url返回json的值。 –

+0

網址沒問題。 –

+0

我的不良網址很好。什麼是你的System.out行的輸出,你可以提供一個空指針異常的堆棧跟蹤。 – kodeally