Olá, estou com um projeto que necessita fazer consultas nesta api: https://www.mercadobitcoin.com.br/api-doc/#glosario_api_dados
E gostaria de saber, o que fazer para pegar os dados dela depois de uma consulta http. Ela retorna um json.
ps; Não entendo bem de como fazer isso. Eu peguei uma etapa que vi aqui em um post, vou vou mostrar o código na imagem. Depois de rodar o código, recebi a mensagem “json recebido” mas dai em diante não sei como prosseguir. Agradeço a ajuda.
Posta o código em si e não imagens dele.
Não dá pra compilar imagens.
public class Teste {
private static final String URL_API = “https://www.mercadobitcoin.net/api/BTC/ticker/”;
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 seu código faz download do seguinte JSON:
{"ticker": {"buy": "35500.00003000", "sell": "35649.97994000", "high": "36000.00000000", "low": "35100.00000000", "vol": "605.24297600", "last": "35500.00003000", "date": 1560866345}}
Mas você está tentando obter valores de propriedades que não estão nele.
O que exatamente você quer fazer com esse JSON?
Eu queria poder pegar o valor do “buy”, para poder jogar um banco de dados e consumir esse dado.