Ankündigung

Einklappen
Keine Ankündigung bisher.

JSON Auswertung funktioniert nur bei Strings

Einklappen

Neue Werbung 2019

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

  • JSON Auswertung funktioniert nur bei Strings

    Hallo liebe PHP Fans,

    ich habe eine JSON Datei die ich als Rückgabe zur Auswertung meiner Phillips HUE Bridge erhalte. Das ganze frage Ich wie folgt ab:

    PHP-Code:
    <?php
    $seite 
    file_get_contents("http://192.168.0.159/api/9lnl2c7oHLcdlrVbiyCSiA7T-DhESZPAFvzIUCxi/lights");
    $data json_decode($seite,true);
    ?>
    so um mir nun ein Wert Ausgeben zu lassen nutze ich folgendes:

    PHP-Code:
    <?php
    echo  $data[1]['name'];
    echo  
    $data[1]['"on"'];  
    echo  
    $data[1]['type'];
    ?>
    So, dann erhalte ich z.b in der ersten Zeile als Antwort: "Windfang" in der dritten Zeile "Dimmable light", NUR bei der zweiten Zeile erhalte ich nichts, es ist immer leer.
    Ich habe festgestellt das ich alle Werte Auslesen und Anzeigen kann die in der JSON Datei in "" stehen, nicht aber Werte ohne.
    Auf den Screenshot bezogen heisst das, alle Lila Werte lassen sich Anzeigen, alle Grünen kommt nur eine leere Ausgabe.


    was mache ich da falsch? bin bisjen verzweifelt und hoffe ihr habt lust mir da zu helfen.

    Ich bedanke mich schon einmal im vorraus....

    gruß

    blueberlin



  • #2
    PHP-Code:
    var_dump($data); 
    Der Arrayoffset für $data[1]['"on"'] sieht nicht korrekt aus. Zumal die Eigenschaft on in der Eigenschaft state enthalten ist, nicht auf der obersten Ebene.
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Ok...
      mit
      PHP-Code:
      var_dump($data); 
      erhalte ich folgende Ausgabe ( ein Auszug, der gesamte Eintrag wäre etwas lang ):

      Code:
      mit array(14) { [1]=> array(13) { ["state"]=> array(5) { ["on"]=> bool(false) ["bri"]=> int(126) ["alert"]=> string(4) "none" ["mode"]=> string(14) "homeautomation" ["reachable"]=> bool(true) } ["swupdate"]=> array(2) { ["state"]=> string(9) "noupdates" ["lastinstall"]=> string(19) "2017-11-14T02:43:18" } ["type"]=> string(14) "Dimmable light" ["name"]=> string(8) "Windfang" ["modelid"]=> string(6) "LWB010" ["manufacturername"]=> string(7) "Philips" ["productname"]=> string(14) "Hue white lamp" ["capabilities"]=> array(3) { ["certified"]=> bool(true) ["control"]=> array(2) { ["mindimlevel"]=> int(5000) ["maxlumen"]=> int(806) } ["streaming"]=> array(2) { ["renderer"]=> bool(false) ["proxy"]=> bool(false) } } ["config"]=> array(3) { ["archetype"]=> string(11) "classicbulb" ["function"]=> string(10) "functional" ["direction"]=> string(15) "omnidirectional" } ["uniqueid"]=> string(26)

      Ich sehe das der Eintrag on, den ich ja auslesen will als bool(false) gesetzt ist, in gegensatz zu allen anderen Werten die mich sonst Interessieren, ich gehe jetzt mal davon aus das dieser anders behandelt werden muss als die String variablen beim Auslesen, sehe ich das korrekt?

      du hast geschrieben das sich der on Eintrag den ich haben will in der Eben state befindet, wie kann ich PHP sagen das ich daten aus diesen Bereichsfeld haben will?

      Kommentar


      • #4
        Nein, siehst du nicht korrekt.

        PHP-Code:
        var_dump($data['state']['on']); 

        Kommentar


        • #5
          vielen dank, das hat mir sehr geholfen, damit bin ich endlich dahin gekommen wo ich hin wollte danke danke danke

          Kommentar

          Lädt...
          X