Ankündigung

Einklappen
Keine Ankündigung bisher.

json_decode

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • json_decode

    Hallo zusammen,

    ich bin gerade dabei PHP zu lernen.
    Von einem anderen Webserver rufe ich Daten im JSON-Format ab und würde diese gerne in Variablen speichern.

    1.JPG

    Diese drei Variablen würde ich gerne befüllen:
    $var_symbol <-- hier soll als Wert "MSFT" gespeichert werden.
    $var_date; <-- hier soll als Wert "2018-02-07" gespeichert werden.
    $var_close; <-- hier soll als Wert "89.6100" gespeichert werden.


    Wie kann ich mit dem Befehl json_decode diese drei Variablen befüllen?



    Vielen Dank für jede Hilfe!


  • #2
    Zitat von poolday86 Beitrag anzeigen
    Wie kann ich mit dem Befehl json_decode diese drei Variablen befüllen?
    Garnicht. json_decode gibt dir den String einfach nur als konvertierten Wert zurück (int,string,array,...). Wenn du die Rückgabe in eine Variable schreibst, kannst du dir dann über die entsprechenden Operatoren die Werte ziehen, so wie mit jedem anderen Wert in PHP auch. Aber was hast du denn schon selber probiert? Hier die Doku:

    http://php.net/manual/de/function.json-decode.php

    Für dein Beispiel relevant: http://php.net/manual/de/language.oop5.basic.php
    You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

    Kommentar


    • #3
      Beispiel
      PHP-Code:
      // Testdaten im Jsonformat                 
      $json '{"a":1,"b":2,"c":3,"d":4,"e":5}';

      // json in array überführen
      $array json_decode($jsontrue);

      // Wert von Arrayschlüssel "b" in Variable speichern
      $var $array['b'];

      // Testen der Ausgabe mit var_dump
      var_dump($var); 

      Kommentar


      • #4
        Danke chorn.

        Ich dachte ich erhalte daraus ein Array und kann dann auf die einzelnen Elemente zugreifen.
        Gibt es keine Möglichkeit die einzelnen Elemente direkt in einzelne Variablen auslesen zu können?


        Kommentar


        • #5
          @protestix:
          Danke! Das hilft mir.

          Allerdings komme ich an der Stelle mit dem Arrayschüssel nicht weiter, da nicht nicht weiß welchen Arrayschlüssel ich angeben muss.
          Hier der var_dum($array):

          array(2) { ["Meta Data"]=> array(5) { ["1. Information"]=> string(49) "Daily Prices (open, high, low, close) and Volumes" ["2. Symbol"]=> string(4) "MSFT" ["3. Last Refreshed"]=> string(19) "2018-02-08 09:48:26" ["4. Output Size"]=> string(7) "Compact" ["5. Time Zone"]=> string(10) "US/Eastern" } ["Time Series (Daily)"]=> array(100) { ["2018-02-08"]=> array(5) { ["1. open"]=> string(7) "89.7100" ["2. high"]=> string(7) "89.8750" ["3. low"]=> string(7) "88.8500" ["4. close"]=> string(7) "88.9400" ["5. volume"]=> string(7) "1986857" } ["2018-02-07"]=> array(5) { ["1. open"]=> string(7) "90.4900" ["2. high"]=> string(7) "91.7700" ["3. low"]=> string(7) "89.2000" ["4. close"]=> string(7) "89.6100" ["5. volume"]=> string( "41081920" } ....

          Kommentar


          • #6
            Guck dir das im Quelltext an, und dann hangelst du dich von Schlüssel zu Schlüssel, die werden dir ja angezeigt.
            You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

            Kommentar


            • #7
              Danke, jetzt funktioniert es!

              $price_close = $array['Time Series (Daily)']['2018-02-08']['4. close'];
              usw.

              Kommentar


              • #8
                Hallo zusammen,

                hier jetzt noch ein anderer Abruf, aber auch hier schaffe ich es nicht auf die Inhalte des Arrays zuzugreifen.

                Das ist mein Code:
                $array = json_decode($json, true);
                $id = $array['dataset']['id'];


                Aus diesem Array möchte ich die Daten lesen:
                array(1) { ["dataset"]=> array(21) { ["id"]=> int(30407196) ["dataset_code"]=> string(11) "IBM_EPS_MRY" ["database_code"]=> string(3) "SF0" ["name"]=> string(97) "INTERNATIONAL BUSINESS MACHINES CORP (NYSE:IBM) - Earnings per Basic Share (Most Recent - Annual)" ["description"]=> string(1243) "}}


                Ich erhalte als Rückgabe "null". Kann mir bitte jemand sagen was ich falsch mache?

                Danke!

                Kommentar

                Lädt...
                X