Javaでは、インデックスでJSONオブジェクトから情報を取得する方法はありますか?私はquandlの財務データテーブルにアクセスしており、テーブルに掲載されている最新の住宅ローン金利を返却したいと考えています。キーは、金利が文字列形式で転記された日付です。最新のデータのキーは毎週変更されますが、必要なデータは常にテーブルの最初のキーと値のペアになります。インデックスでJavaのJSONオブジェクトをクエリ
JavaScriptでこれを約5分で実行できました。しかし、Javaではもっと面倒なようです。以下は私が行く場所に私を近づけるのに最も近いと思われるコードの反復です。 Javaのオブジェクトとしてテーブルに設定された最初のキーと値のペアを返すことができます。これは... ["2017-12-14"、3.93]です。最後のステップは私を逃すことです。私は3.93をつかんで返します。それともこれについてもっと良い方法がありますか?
double baseRate = 0.0;
default double getBaseRate() throws MalformedURLException {
try {
// make a GET request
URL url = new URL("https://www.quandl.com/api/v3/datasets/FMAC/30US.json?api_key=-c-s9zf8s1NdLbhVin1p");
HttpURLConnection request = (HttpURLConnection) url.openConnection();
request.connect();
InputStreamReader is = new InputStreamReader((InputStream) request.getContent());
// Convert response stream to a JSON object
JsonReader reader = Json.createReader(is);
JsonObject obj = reader.readObject();
reader.close();
request.disconnect();
// Drill down to the desired piece of data
JsonObject dataset = obj.getJsonObject("dataset");
JsonArray data = dataset.getJsonArray("data");
Object currentData = data.get(0);
System.out.println(currentData);
} catch (IOException e) {
e.printStackTrace();
}
return baseRate;
}
。ドキュメントを確認してください(ここにはJava EEのリンクがあります)。 https://docs.oracle.com/javaee/7/api/javax/json/JsonArray.html – PillHead
ありがとう!これはgetJsonNumberを使って動作しました。 JsonArray data = dataset.getJsonArray( "data"); JsonArray currentData =(JsonArray)data.get(0); double currentRate = currentData.getJsonNumber(1).doubleValue(); –
あなたは答えを受け入れることができますか? – PillHead