我在天气应用程序工作。我使用免费的api来获取天气信息。当我尝试你运行这个课我得到" 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 :(得分:-2)
将您的网址http://api.openweathermap.org/data/2.5/weather?q=drobeta,romania放入浏览器会为我返回错误500。我会说这就是你获得null异常的原因。但是,如果将其修改为http://api.openweathermap.org/data/2.5/weather?q=romania,您将获得有效的json结果。