Zmienna z API

0
function usd() {
                var xhttp = new XMLHttpRequest();
                xhttp.onreadystatechange = function() {
                    if (this.readyState == 4 && this.status == 200) {
                        document.getElementById("demo").innerHTML = this.responseText;
                    }
                };
                xhttp.open("GET", "http://api.nbp.pl/api/exchangerates/rates/a/usd/", true);
                xhttp.send();
            }

taki kodzik który zwraca wartośc:

{"table":"A","currency":"dolar amerykański","code":"USD","rates":[{"no":"059/A/NBP/2020","effectiveDate":"2020-03-25","mid":4.2220}]}

potrzebuje wyciagnac zmienna z wartoscia kursu czyli "4.2220"
tak aby wrzucic to do kalkulatora

1

JSON.parse() zrobi ci z tego wyniku obiekt.

0
Ktos napisał(a):

JSON.parse() zrobi ci z tego wyniku obiekt.

JSON to czarna magia dla mnie wiec proszę o dokladniejsza wskazówke badz jakis odsyłacz do artykułu

4
Yankesowsky napisał(a):
Ktos napisał(a):

JSON.parse() zrobi ci z tego wyniku obiekt.

JSON to czarna magia dla mnie wiec proszę o dokladniejsza wskazówke badz jakis odsyłacz do artykułu

www.google.com

1

Obstawiam, że nawet nie trzeba parsować, wystarczy responseText.rates[0].mid.

0
ŁF napisał(a):

Obstawiam, że nawet nie trzeba parsować, wystarczy responseText.rates[0].mid.

<script >
            function przeliczaj() {
                var krok1;
                var krok2;
                var pln = 1.00;
                var eur = 4.58;
                var usd = 4.22;
                

                switch (przelicznik.co.value)
                {
                    case "PLN":
                        krok1 = przelicznik.ile.value*pln;
                        break;
                    case "EUR":
                        krok1 = przelicznik.ile.value*eur;
                        break;
                    case "USD":
                        krok1 = przelicznik.ile.value*usd;
                        break;
                    default:
                        krok1 = "nie udało się:(";
                }

                switch (przelicznik.naCo.value)
                {
                    case "PLN":
                        krok2 = krok1/pln;
                        break;
                    case "EUR":
                        krok2 = krok1/eur;
                        break;
                    case "USD":
                        krok2 = krok1/usd;
                        break;
                    default:
                        krok2 = "nie udało się:(";
                }

                przelicznik.wynik.value = krok2;
            }
        </script>

jak mam to wstawic do tego

1

Twój kod z pierwszego posta z dodanym parsowaniem wyniku:

function usd() {
                var xhttp = new XMLHttpRequest();
                xhttp.onreadystatechange = function() {
                    if (this.readyState == 4 && this.status == 200) {
                        let usd = JSON.parse(this.responseText).rates[0].mid;
                        document.getElementById("demo").innerHTML = usd;
                    }
                };
                xhttp.open("GET", "https://api.nbp.pl/api/exchangerates/rates/a/usd/", true);
                xhttp.send();
            }
0
Ktos napisał(a):

Twój kod z pierwszego posta z dodanym parsowaniem wyniku:

function usd() {
                var xhttp = new XMLHttpRequest();
                xhttp.onreadystatechange = function() {
                    if (this.readyState == 4 && this.status == 200) {
                        let usd = JSON.parse(this.responseText).rates[0].mid;
                        document.getElementById("demo").innerHTML = usd;
                    }
                };
                xhttp.open("GET", "https://api.nbp.pl/api/exchangerates/rates/a/usd/", true);
                xhttp.send();
            }

Dzieki bardzo

0

dzieki za pomoc dla tych którzy faktycznie pomogli temat do zamkniecia koncowy kod wyglada tak

 <script>
               usd= dolar();
               
               function dolar() {
                   var xhttp = new XMLHttpRequest();
                   xhttp.onreadystatechange = function() {
                       if (this.readyState == 4 && this.status == 200) {
                           usd = JSON.parse(this.responseText).rates[0].mid;
                        
                       }
                   };
                   xhttp.open("GET", "https://api.nbp.pl/api/exchangerates/rates/a/usd/", true);
                   xhttp.send();

               }

               eur= euro();
               function euro() {
                   var xhttp = new XMLHttpRequest();
                   xhttp.onreadystatechange = function() {
                       if (this.readyState == 4 && this.status == 200) {
                           eur = JSON.parse(this.responseText).rates[0].mid;
                       }
                   };
                   xhttp.open("GET", "https://api.nbp.pl/api/exchangerates/rates/a/eur/", true);
                   xhttp.send();

               }
               

        
            function przeliczaj() {
                var krok1;
                var krok2;
                var pln= 1;
                euro();
                dolar();
                

                switch (przelicznik.co.value)
                {
                    case "PLN":
                        krok1 = przelicznik.ile.value*pln;
                        break;
                    case "EUR":
                        krok1 = przelicznik.ile.value*eur;
                        break;
                    case "USD":
                        krok1 = przelicznik.ile.value*usd;
                        break;
                    default:
                        krok1 = "nie udało się:(";
                }

                switch (przelicznik.naCo.value)
                {
                    case "PLN":
                        krok2 = krok1/pln;
                        break; 
                    case "EUR":
                        krok2 = krok1/eur;
                        break;
                    case "USD":
                        krok2 = krok1/usd;
                        break;
                    default:
                        krok2 = "nie udało się:(";
                }

                przelicznik.wynik.value = krok2;
            }
        </script>    

1 użytkowników online, w tym zalogowanych: 0, gości: 1