Stránka 1 z 2

json, bitcoin, ticker, kurz atd...

Napsal: 12 srp 2019, 22:23
od Compaq
Z adresy:

https://api.coindesk.com/v1/bpi/currentprice/CZK.json

stáhnu soubor
{"time":{"updated":"Aug 12, 2019 20:17:00 UTC","updatedISO":"2019-08-12T20:17:00+00:00","updateduk":"Aug 12, 2019 at 21:17 BST"},"disclaimer":"This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org","bpi":{"USD":{"code":"USD","rate":"11,447.8750","description":"United States Dollar","rate_float":11447.875},"CZK":{"code":"CZK","rate":"263,809.3809","description":"Czech Republic Koruna","rate_float":263809.3809}}}
a z něj potřebuju vysosat kurz v CZK (těch 263809.3809 na konci)

float kurz = CZK:rate_float

Našel jsem tohle, ale to mi nefunguje:
https://arduinojson.org/v5/example/parser/

Díky za rady a tipy.

Re: json, bitcoin, ticker, kurz atd...

Napsal: 13 srp 2019, 12:24
od pavel1tu
Sorry,
ale křišťálové koule ještě nemáme ...
Co přesně ti nefunguje ?

JSON je formát výstupu dat z něčeho, a ten odkaz na CZK.json vede dle mne na nevalidní data - Invalid JSON (RFC 4627).
Validní data se třeba ve Firefoxu zobrazují pěkně srovnaná a ne jako stupidní řetězec.
http://arduinojson.org/example.json

Jinak díky za odkaz, na mnou generovaná data JSON pro grafy od Google to funguje,
Arduino mi dle klíče vyplivne řetězec.

1) pokud ti to proleze až po alokování paměti pro řetězec (kam načteš celý výstup ve formátu JSON)
2) tak musíš správně provést Extract (stačí správně zadat klíče a názvy z tabulky JSON a data se ti samy vyextrahují.

Jak jsem psal, na má data mi to funguje na první dobrou, na ten odkaz od tebe ani náhodou.

Základ je znát něco o databázích a struktuře JSON

Re: json, bitcoin, ticker, kurz atd...

Napsal: 13 srp 2019, 13:18
od pavel1tu
Koukl jsem na to a stačí něčím zpracovat (třeba PHP souborem, nebo něčím) aby se do toho JSON souboru stáhly jen JSON data.

Ten PHP soubor co JSON generuje zbytečně tam rve i data pro webový prohlížeč.

pokud jsem si ručně (na PHP nebo něco nemám čas) vyextrahoval jen:

Kód: Vybrat vše

{
   "time":{
      "updated":"Aug 13, 2019 11:08:00 UTC",
      "updatedISO":"2019-08-13T11:08:00+00:00",
      "updateduk":"Aug 13, 2019 at 12:08 BST"
   },
   "disclaimer":"This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org",
   "bpi":{
      "USD":{
         "code":"USD",
         "rate":"11,254.5683",
         "description":"United States Dollar",
         "rate_float":11254.5683
      },
      "CZK":{
         "code":"CZK",
         "rate":"259,077.6566",
         "description":"Czech Republic Koruna",
         "rate_float":259077.6566
      }
   }
}
tak mi to chodí
stačí dát vyextrahovat data dle klíče "CZK" nebo "rate_float", jen je problém, že to musíš udělat jak pro USD tak pro CZK, nevím jak přeskočit rovnou na CZK.

Jdi do dokumentace a na příklady tam to je pěkně popsané.

Re: json, bitcoin, ticker, kurz atd...

Napsal: 13 srp 2019, 13:47
od Compaq
Díky, do jaké dokumentace?

Tady?
https://www.coindesk.com/api

???

Re: json, bitcoin, ticker, kurz atd...

Napsal: 13 srp 2019, 14:51
od Compaq
Zkouším rozkuchat takhle, ale marně:

Kód: Vybrat vše

JsonObject& bpi = root["bpi"];
JsonObject& usd = bpi["USD"];
JsonObject& czk = bpi["CZK"];
String rate_float = czk["rate_float"];
Serial.print("kurz (CZK): CZK");
Serial.print(rate_float);
Nechce mi to vzít původní řetězec:
{"time":{"updated":"Aug 13, 2019 12:21:00 UTC","updatedISO":"2019-08-13T12:21:00+00:00","updateduk":"Aug 13, 2019 at 13:21 BST"},"disclaimer":"This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org","bpi":{"USD":{"code":"USD","rate":"11,248.0300","description":"United States Dollar","rate_float":11248.03},"CZK":{"code":"CZK","rate":"259,061.1682","description":"Czech Republic Koruna","rate_float":259061.1682}}}

Re: json, bitcoin, ticker, kurz atd...

Napsal: 13 srp 2019, 16:26
od kiRRow
PHP scriptem to rozlomit na kousky tam kde je řetězec

Kód: Vybrat vše

"rate_float":
vzít kousek[2] a rozlomit ho v místě kde je znak }
oříznou bílé znaky z kousek[0] (po rozdělení kousek[2]) ... ten bude pak obsahovat jen : "259077.6566"

Re: json, bitcoin, ticker, kurz atd...

Napsal: 13 srp 2019, 18:27
od Compaq
Potřeboval bych prostě z libovolného zdroje vysosat kurz bitcoinu v CZK:

https://bitpay.com/rates/btc/czk
vrátí:
{"data":{"code":"CZK","name":"Czech Koruna","rate":252140.5}}
https://api.coindesk.com/v1/bpi/currentprice/CZK.json
vrátí:
{"time":{"updated":"Aug 13, 2019 16:15:00 UTC","updatedISO":"2019-08-13T16:15:00+00:00","updateduk":"Aug 13, 2019 at 17:15 BST"},"disclaimer":"This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org","bpi":{"USD":{"code":"USD","rate":"10,937.6467","description":"United States Dollar","rate_float":10937.6467},"CZK":{"code":"CZK","rate":"252,633.3144","description":"Czech Republic Koruna","rate_float":252633.3144}}}
https://free.currconv.com/api/v7/conver ... 30f9f7b4e6
vrátí:
{"BTC_CZK":251557.380492}
https://api.coinbase.com/v2/prices/btc-czk/buy
vrátí:
{"data":{"base":"BTC","currency":"CZK","amount":"253236.82"}}
Nějak se to přeci dá...
Díky za rady a tipy...

Re: json, bitcoin, ticker, kurz atd...

Napsal: 13 srp 2019, 18:37
od kiRRow
A chceš to lámat přímo arduinem, nebo tomu arduinu externím skriptem připravit hodnoty v tebou zvoleném formátu ?

Re: json, bitcoin, ticker, kurz atd...

Napsal: 13 srp 2019, 18:56
od Compaq
jen arduino :-(

funguje mi to pro EURA, pro USD jen to chci modifikovat na CZK

Re: json, bitcoin, ticker, kurz atd...

Napsal: 13 srp 2019, 20:18
od Compaq