Cómo extraer el valor de la API

¿Cómo puedo extraer un cierto valor de la api siguiente?

Https://blockchain.info/ticker

{ "USD" : {"15m" : 376.51, "last" : 376.51, "buy" : 376.79, "sell" : 377.61, "symbol" : "$"}, "ISK" : {"15m" : 48027.62, "last" : 48027.62, "buy" : 48063.33, "sell" : 48167.93, "symbol" : "kr"}, "HKD" : {"15m" : 2933.63, "last" : 2933.63, "buy" : 2935.81, "sell" : 2942.2, "symbol" : "$"}, "TWD" : {"15m" : 12551.49, "last" : 12551.49, "buy" : 12560.82, "sell" : 12588.16, "symbol" : "NT$"}, "CHF" : {"15m" : 373.09, "last" : 373.09, "buy" : 373.37, "sell" : 374.18, "symbol" : "CHF"}, "EUR" : {"15m" : 337.4, "last" : 337.4, "buy" : 337.65, "sell" : 338.38, "symbol" : "€"}, "DKK" : {"15m" : 2517.92, "last" : 2517.92, "buy" : 2519.79, "sell" : 2525.27, "symbol" : "kr"}, "CLP" : {"15m" : 265459.51, "last" : 265459.51, "buy" : 265656.92, "sell" : 266235.07, "symbol" : "$"}, "CAD" : {"15m" : 523.97, "last" : 523.97, "buy" : 524.36, "sell" : 525.5, "symbol" : "$"}, "CNY" : {"15m" : 2475.39, "last" : 2475.39, "buy" : 2477.24, "sell" : 2482.63, "symbol" : "¥"}, "THB" : {"15m" : 13398, "last" : 13398, "buy" : 13407.97, "sell" : 13437.15, "symbol" : "฿"}, "AUD" : {"15m" : 532.81, "last" : 532.81, "buy" : 533.21, "sell" : 534.37, "symbol" : "$"}, "SGD" : {"15m" : 530.11, "last" : 530.11, "buy" : 530.5, "sell" : 531.65, "symbol" : "$"}, "KRW" : {"15m" : 453073.94, "last" : 453073.94, "buy" : 453410.87, "sell" : 454397.62, "symbol" : "₩"}, "JPY" : {"15m" : 43995.46, "last" : 43995.46, "buy" : 44028.18, "sell" : 44123.99, "symbol" : "¥"}, "PLN" : {"15m" : 1487.56, "last" : 1487.56, "buy" : 1488.67, "sell" : 1491.91, "symbol" : "zł"}, "GBP" : {"15m" : 259.62, "last" : 259.62, "buy" : 259.82, "sell" : 260.38, "symbol" : "£"}, "SEK" : {"15m" : 3182.51, "last" : 3182.51, "buy" : 3184.88, "sell" : 3191.81, "symbol" : "kr"}, "NZD" : {"15m" : 568.05, "last" : 568.05, "buy" : 568.47, "sell" : 569.71, "symbol" : "$"}, "BRL" : {"15m" : 1469.66, "last" : 1469.66, "buy" : 1470.75, "sell" : 1473.95, "symbol" : "R$"}, "RUB" : {"15m" : 29126.34, "last" : 29126.34, "buy" : 29148, "sell" : 29211.43, "symbol" : "RUB"} } 

Me gustaría capturar específicamente el valor de compra CAD.

Actualmente tengo un botón y un EditText en mi actividad que realiza cálculos basados ​​en el valor en EditText que es ingresado manualmente por el usuario. Quisiera extraer el valor de la api arriba para que el usuario no tenga que entrar manualmente en ese valor.

Cree un objeto JSON de su cadena de respuesta desde la API

 JSONObject jsonObject = new JSONObject(response); 

A continuación, obtener el objeto CAD de ella

 JSONObject jsonObjectCad = jsonObject.getJSONObject("CAD"); String buy = jsonObjectCad.getString("buy"); 

Lo que tienes se llama una cadena json. Puede utilizar la API de Jackson para reflejar estos valores en beans:

https://github.com/FasterXML/jackson

 ObjectMapper mapper = new ObjectMapper(); String jsonInString = ""; // Your string from above. User user = mapper.readValue(jsonInString, YourClass.class); 

Hay muchos ejemplos sobre este tema en la web.

Tarde o temprano requerirá todos los elementos de los datos JSON . Prueba este código que te permite recopilar toda la información que se puede recoger en función de su valor clave

Este código ha sido probado y también está disponible en Github

 private class DownloadData extends AsyncTask<Void,Void, Void>{ @Override protected Void doInBackground(Void... params) { try{ URL url = new URL("https://blockchain.info/ticker"); HttpsURLConnection httpsURLConnection = (HttpsURLConnection)url.openConnection(); httpsURLConnection.connect(); String result = IOUtils.toString(httpsURLConnection.getInputStream()); System.out.println(""+result); HashMap<String, Information> map = new HashMap<>(); JSONObject jsonObject = new JSONObject(result); Iterator<String> iterator = jsonObject.keys(); while (iterator.hasNext()){ String key = iterator.next(); System.out.println(key); Information information = new Information(); information.setA_15m(jsonObject.getJSONObject(key).getString("15m")); information.setBuy(jsonObject.getJSONObject(key).getString("last")); information.setLast(jsonObject.getJSONObject(key).getString("buy")); information.setSell(jsonObject.getJSONObject(key).getString("sell")); information.setSymbol(jsonObject.getJSONObject(key).getString("symbol")); map.put(key,information); } Set<String> key_Strings = map.keySet(); for (String single_key:key_Strings) { System.out.println(); Information information = map.get(single_key); System.out.println("Currency: "+single_key); System.out.println("15m: "+information.getA_15m()); System.out.println("Buy: "+information.getBuy()); System.out.println("Last: "+information.getLast()); System.out.println("Sell: "+information.getSell()); System.out.println("Symbol: "+information.getSymbol()); System.out.println(); } }catch (Exception e){ e.printStackTrace(); } return null; } } private class Information { private String a_15m; private String last; private String buy; private String sell; private String symbol; public String getA_15m() { return a_15m; } public void setA_15m(String a_15m) { this.a_15m = a_15m; } public String getLast() { return last; } public void setLast(String last) { this.last = last; } public String getBuy() { return buy; } public void setBuy(String buy) { this.buy = buy; } public String getSell() { return sell; } public void setSell(String sell) { this.sell = sell; } public String getSymbol() { return symbol; } public void setSymbol(String symbol) { this.symbol = symbol; } } 
  • ¿Cómo usar HTTPS y HTTP para analizar datos JSON en Android?
  • El ID de transacción se ha configurado correctamente, pero sólo se ha mostrado un envío posterior
  • Android gson streaming analizador o android.util.jsonreader?
  • Android no procesar objeto JSON
  • Gson convierte una matriz de objetos de datos en json - Android
  • Leer la carpeta JSON de / assets en un ArrayList en Android?
  • Asignación de un JSONObject a una lista con Flexjson en Java / Android
  • Convertir InputStream a JSONObject
  • Mi actividad no puede conectarse al sitio web y mostrar los datos de JSON mediante volley
  • Aparece la tecla "nameValuePairs" extraña cuando se utiliza Gson
  • Convertir Json Array a una matriz Java normal
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.