2017-02-18 12 views
0

私はこれを行う方法を失っている:目標は、Javaでopenweather APIを呼び出して、結果をコンソールに戻すことです。他のファイルからJSONデータを解析する方法についてのみ、これを行う方法に関するチュートリアルは見つかりませんでした。JsonReaderを使用したJava APIコール?

これは正しい方向に進んでいますか?いい考えはありません。コメンターの1が指摘するように、はあなたのコードを実行するものの、の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

をチェック*ノーアイデア*:あなたはあなたのコードを実行すると、エラーメッセージを読み取ることによって、アイデアを得るでしょう。 FileInputStreamは、その名前(およびそのjavadoc)が示すとおり、ファイルからの読み取りに使用されます。 URLからではありません。どのようにしてURLからInputStreamを取得できますか? URLのjavadocでそのことを知ることができます。 –

+0

参照:http://stackoverflow.com/questions/2793150/using-java-net-urlconnection-to-fire-and-handle-http-requests –

答えて

1

ソートを使用しようとする提案に従って変更されました。それは動作しません。一度ストリームを取得すると、あなたが持っているものは動作するはずです。しかし、apiURLはファイルではないので、FileInputStreamはそれを読む方法を理解できません。 Apache HttpComponentsをチェックしてください。具体的には、here'sのように、正確に何をしようとしているのかを示すGETリクエストの作成例を示します。

1

JSONデータを解析するには、google API gson

などを使用できます。

JsonObject jobj = new Gson().fromJson(response, JsonObject.class); 
    jsonresponse = jobj.get("message").getAsString(); 
+0

ありがとうVikrant、あなたは完全な使用例がありますか?私は、ファイルを使用して例を見つけることができますが、APIのURLからデータを読み取る方法についてはどこにも例がありません。 – Mehmet

+0

apache httpクライアント、HttpClientクライアント= new DefaultHttpClient();を使用してURLをヒットできます。 HttpGetリクエスト=新しいHttpGet( "http://ip.jsontest.com/"); org.apache.http.HttpResponse httpResponse = client.execute(request); 文字列レスポンス= EntityUtils.toString(httpResponse.getEntity()); System.out.println(応答); –

1

以下のコードと輸入に必要なjarファイル

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); 
    } 

} 
関連する問題