Boa Noite Pessoal!
Desenvolvi um pequeno sistema e quero incrementá-lo com um painel de cotações de moedas da seguinte API [http://api.promasters.net.br/cotacao/ ]. Mas minha dúvida é de como vou pegar esses dados para jogar em um Jframe. Na api é possível extrair em JSON ou XML.
Você pode usar o que postei aqui: Integração com site
E depois serializar o json recebido…(usa a biblioteca Gson)
Cara, não compreendi muito bem, sou iniciante no quesito de pegar dados de uma determinada URL
Como vou adaptar o json ou xml naquele teu código?
Alguma coisa desse tipo, ai você adapta e dá uma olhada na documentação do Gson se quiser desserializar:
package br.com.julio.console;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map.Entry;
import java.util.Set;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class Principal {
private static final String URL_API = "http://api.promasters.net.br/cotacao/v1/valores";
public static void main(String[] args) {
HttpURLConnection con = null;
try {
URL url = new URL(URL_API);
con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.connect();
switch (con.getResponseCode()) {
case 200:
System.out.println("JSON recebido!");
String json = getJson(url);
JsonParser parser = new JsonParser();
JsonObject obj = (JsonObject) parser.parse(json);
Set<Entry<String, JsonElement>> el = obj.entrySet();
for (Entry<String, JsonElement> els : el) {
if (els.getKey().equals("status")) {
System.out.println(els.getKey() + ":" + els.getValue().getAsBoolean());
} else if (els.getKey().equals("valores")) {
JsonElement e = els.getValue();
JsonObject jobj = e.getAsJsonObject();
Set<Entry<String, JsonElement>> props = jobj.entrySet();
for (Entry<String, JsonElement> prop : props) {
System.out.println(prop.getKey() + ":" + String.valueOf(prop.getValue()));
}
}
}
break;
case 500:
System.out.println("Status 500");
break;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (con != null)
con.disconnect();
}
}
public static String getJson(URL url) {
if (url == null)
throw new RuntimeException("URL é null");
String html = null;
StringBuilder sB = new StringBuilder();
try (BufferedReader bR = new BufferedReader(new InputStreamReader(url.openStream()))) {
while ((html = bR.readLine()) != null)
sB.append(html);
} catch (Exception e) {
e.printStackTrace();
}
return sB.toString();
}
}
O resultado:
JSON recebido!
status:true
USD:{"nome":"Dólar","valor":3.264,"ultima_consulta":1509563407,"fonte":"UOL Economia - http://economia.uol.com.br/"}
EUR:{"nome":"Euro","valor":3.807,"ultima_consulta":1509630007,"fonte":"UOL Economia - http://economia.uol.com.br/"}
ARS:{"nome":"Peso Argentino","valor":0.1857,"ultima_consulta":1509629409,"fonte":"UOL Economia - http://economia.uol.com.br/"}
GBP:{"nome":"Libra Esterlina","valor":4.2843,"ultima_consulta":1509630008,"fonte":"UOL Economia - http://economia.uol.com.br/"}
BTC:{"nome":"Bitcoin","valor":24180,"ultima_consulta":1509630009,"fonte":"Mercado Bitcoin - http://www.mercadobitcoin.com.br/"}
Ahh sim, entendi. Vou fazer aqui. Obrigado pela ajuda.
JulioCesarSF:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map.Entry;
import java.util.Set;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
Como eu faço para pegar o nome e valor de uma moeda e jogar em uma variavel?
Aqui você pega o nome da chave e o valor. (Por exemplo: nome : Dólar).
Tu não consegue por um exemplo armazenando o valor do dolar em uma variável por exemplo ? Por favor
Tu não consegue por um exemplo armazenando o valor do dolar em uma variável por exemplo ? Por favor