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.
E depois serializar o json recebido…(usa a biblioteca Gson)
Luiz_Henrique_Campos
Cara, não compreendi muito bem, sou iniciante no quesito de pegar dados de uma determinada URL
Luiz_Henrique_Campos
Como vou adaptar o json ou xml naquele teu código?
JulioCesarSF
Alguma coisa desse tipo, ai você adapta e dá uma olhada na documentação do Gson se quiser desserializar:
packagebr.com.julio.console;importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.net.HttpURLConnection;importjava.net.URL;importjava.util.Map.Entry;importjava.util.Set;importcom.google.gson.JsonElement;importcom.google.gson.JsonObject;importcom.google.gson.JsonParser;publicclassPrincipal{privatestaticfinalStringURL_API="http://api.promasters.net.br/cotacao/v1/valores";publicstaticvoidmain(String[]args){HttpURLConnectioncon=null;try{URLurl=newURL(URL_API);con=(HttpURLConnection)url.openConnection();con.setRequestMethod("GET");con.connect();switch(con.getResponseCode()){case200:System.out.println("JSON recebido!");Stringjson=getJson(url);JsonParserparser=newJsonParser();JsonObjectobj=(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());}elseif(els.getKey().equals("valores")){JsonElemente=els.getValue();JsonObjectjobj=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;case500:System.out.println("Status 500");break;}}catch(Exceptione){e.printStackTrace();}finally{if(con!=null)con.disconnect();}}publicstaticStringgetJson(URLurl){if(url==null)thrownewRuntimeException("URL é null");Stringhtml=null;StringBuildersB=newStringBuilder();try(BufferedReaderbR=newBufferedReader(newInputStreamReader(url.openStream()))){while((html=bR.readLine())!=null)sB.append(html);}catch(Exceptione){e.printStackTrace();}returnsB.toString();}}
O resultado:
JSONrecebido!status:trueUSD:{"nome":"Dólar","valor":3.264,"ultima_consulta":[telefoneremovido],"fonte":"UOL Economia - http://economia.uol.com.br/"}EUR:{"nome":"Euro","valor":3.807,"ultima_consulta":[telefoneremovido],"fonte":"UOL Economia - http://economia.uol.com.br/"}ARS:{"nome":"Peso Argentino","valor":0.1857,"ultima_consulta":[telefoneremovido],"fonte":"UOL Economia - http://economia.uol.com.br/"}GBP:{"nome":"Libra Esterlina","valor":4.2843,"ultima_consulta":[telefoneremovido],"fonte":"UOL Economia - http://economia.uol.com.br/"}BTC:{"nome":"Bitcoin","valor":24180,"ultima_consulta":[telefoneremovido],"fonte":"Mercado Bitcoin - http://www.mercadobitcoin.com.br/"}
Luiz_Henrique_Campos
Ahh sim, entendi. Vou fazer aqui. Obrigado pela ajuda.
Luiz_Henrique_Campos
Como eu faço para pegar o nome e valor de uma moeda e jogar em uma variavel?
JulioCesarSF
Aqui você pega o nome da chave e o valor. (Por exemplo: nome : Dólar).
Luiz_Henrique_Campos
Tu não consegue por um exemplo armazenando o valor do dolar em uma variável por exemplo ? Por favor
Luiz_Henrique_Campos
Tu não consegue por um exemplo armazenando o valor do dolar em uma variável por exemplo ? Por favor