json, bitcoin, ticker, kurz atd...

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Compaq
Příspěvky: 21
Registrován: 16 črc 2019, 10:40
Reputation: 0

json, bitcoin, ticker, kurz atd...

Příspěvek od Compaq » 12 srp 2019, 22:23

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.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

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

Příspěvek od pavel1tu » 13 srp 2019, 12:24

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
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

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

Příspěvek od pavel1tu » 13 srp 2019, 13:18

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é.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Compaq
Příspěvky: 21
Registrován: 16 črc 2019, 10:40
Reputation: 0

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

Příspěvek od Compaq » 13 srp 2019, 13:47

Díky, do jaké dokumentace?

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

???

Compaq
Příspěvky: 21
Registrován: 16 črc 2019, 10:40
Reputation: 0

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

Příspěvek od Compaq » 13 srp 2019, 14:51

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}}}

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

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

Příspěvek od kiRRow » 13 srp 2019, 16:26

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"

Compaq
Příspěvky: 21
Registrován: 16 črc 2019, 10:40
Reputation: 0

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

Příspěvek od Compaq » 13 srp 2019, 18:27

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...

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

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

Příspěvek od kiRRow » 13 srp 2019, 18:37

A chceš to lámat přímo arduinem, nebo tomu arduinu externím skriptem připravit hodnoty v tebou zvoleném formátu ?

Compaq
Příspěvky: 21
Registrován: 16 črc 2019, 10:40
Reputation: 0

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

Příspěvek od Compaq » 13 srp 2019, 18:56

jen arduino :-(

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

Compaq
Příspěvky: 21
Registrován: 16 črc 2019, 10:40
Reputation: 0

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

Příspěvek od Compaq » 13 srp 2019, 20:18


Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 7 hostů