所以我迷失了如何做到这一点:目标只是在java中调用openweather api并将结果返回到控制台上。我找不到有关如何执行此操作的任何教程,仅关于如何解析来自其他文件的JSON数据...
呃,这是朝着正确的方向发展的吗?不知道。根据建议修改以尝试使用Gson
import com.google.gson.JsonElement;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonObject;
import javax.json.JsonReader;
import javax.json.JsonValue;
public class ApiJSONRead {
URL apiURL = new URL("http://api.openweathermap.org/data/2.5/find?q=London&APPID=(idhere)");
public static void main(String[] args) throws IOException {
JsonObject jobj = new Gson().fromJson(apiURL, JsonObject.class);
var Jsonresponse = jobj.get("weather").getAsString();
System.out.println(Jsonresponse);
}
}
答案 0 :(得分:1)
排序,尽管其中一位评论者指出,运行您的代码。它不会起作用。一旦你得到了流,你所拥有的应该是有用的。但apiURL
不是文件,因此FileInputStream
无法理解如何阅读它。查看Apache HttpComponents。具体来说,here's示例显示了如何发出GET
请求,这正是您要做的事情。
答案 1 :(得分:1)
要解析JSON数据,可以使用google API gson
e.g。
JsonObject jobj = new Gson().fromJson(response, JsonObject.class);
jsonresponse = jobj.get("message").getAsString();
答案 2 :(得分:1)
检查以下代码并导入必要的罐子
import java.io.IOException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
public class ApiJSONRead {
public static void main(String[] args) throws IOException {
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://ip.jsontest.com/");
org.apache.http.HttpResponse httpResponse = client.execute(request);
String response = EntityUtils.toString(httpResponse.getEntity());
System.out.println(response);
JsonObject jobj = new Gson().fromJson(response, JsonObject.class);
String Jsonresponse = jobj.get("ip").getAsString();
System.out.println(Jsonresponse);
}
}
答案 3 :(得分:0)
我是Sprinkler开源项目的提交者。参见http://wiki.bitplan.com/index.php/Sprinkler 作为该项目的一部分,我正在实现必要的开放天气API调用。 您可能想看看
和
还有一个JsonUtil帮助器类,该类隐藏了如何从url获取json字符串的详细信息。