Ankündigung

Einklappen
Keine Ankündigung bisher.

Json lesen

Einklappen

Neue Werbung 2019

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

  • Json lesen

    Hallo,

    ich habe jetzt schon einiges über das lesen und aufarbeiten des json-Strings gelesen, aber ich hänge voll daneben.

    PHP-Code:
     <?php

    $path 
    'data.json';
    $jsonString file_get_contents($path);
    $jsonData json_decode($jsonString,true);
    var_dump($jsonData);

    echo 
    $jsonData[0][0];

    ?>
    array(3) { [0]=> array(1) { ["relais"]=> array( { ["status_relais_1"]=> int(0) ["status_relais_2"]=> int(1) ["status_relais_3"]=> int(0) ["status_relais_4"]=> int(0) ["status_relais_5"]=> int(0) ["status_relais_6"]=> int(0) ["status_relais_7"]=> int(1) ["status_relais_8"]=> int(0) } } [1]=> array(1) { ["master"]=> array(7) { ["ppv1"]=> float(0) ["status"]=> int(2) ["battwatt"]=> int(-3210) ["ac_output"]=> int(2690) ["soc"]=> int(70) ["ac_in"]=> int(0) ["pvheute"]=> int(0) } } [2]=> array(1) { ["slave"]=> array(7) { ["ppv1"]=> float(0) ["status"]=> int(2) ["battwatt"]=> int(-3210) ["ac_output"]=> int(1650) ["soc"]=> int(70) ["ac_in"]=> int(0) ["pv_heute"]=> int(0) } } }

    Ich erzeuge doch ein Array das aus 3 Array besteht. Oder nicht.
    Ich möchte daraus auf das Array "relais" auf den ersten Eintrag daraus zugreifen, also "status_relais_1".

    Wo liegt mein Fehler?

    Gruß Ralf

  • #2
    PHP-Code:
    $json '[
        {
            "relais": {
                "status_relais_1": 0,
                "status_relais_2": 1,
                "status_relais_3": 0,
                "status_relais_4": 0,
                "status_relais_5": 0,
                "status_relais_6": 0,
                "status_relais_7": 1,
                "status_relais_8": 0
            }
        },
        {
            "master": {
                "ppv1": 0.0,
                "status": 2,
                "battwatt": -3210,
                "ac_output": 2690,
                "soc": 70,
                "ac_in": 0,
                "pvheute": 0
            }
        },
        {
            "slave": {
                "ppv1": 0.0,
                "status": 2,
                "battwatt": -3210,
                "ac_output": 1650,
                "soc": 70,
                "ac_in": 0,
                "pvheute": 0
            }
        }
    ]'

    PHP-Code:
    $data json_decode($jsontrue);
    print_r($data); 
    Ausgabe:
    Code:
    Array
    (
        [0] => Array
            (
                [relais] => Array
                    (
                        [status_relais_1] => 0
                        [status_relais_2] => 1
                        [status_relais_3] => 0
                        [status_relais_4] => 0
                        [status_relais_5] => 0
                        [status_relais_6] => 0
                        [status_relais_7] => 1
                        [status_relais_8] => 0
                    )
    
            )
    
        [1] => Array
            (
                [master] => Array
                    (
                        [ppv1] => 0
                        [status] => 2
                        [battwatt] => -3210
                        [ac_output] => 2690
                        [soc] => 70
                        [ac_in] => 0
                        [pvheute] => 0
                    )
    
            )
    
        [2] => Array
            (
                [slave] => Array
                    (
                        [ppv1] => 0
                        [status] => 2
                        [battwatt] => -3210
                        [ac_output] => 1650
                        [soc] => 70
                        [ac_in] => 0
                        [pvheute] => 0
                    )
    
            )
    
    )
    Wie man hier deutlich sieht gibt es kein [0][0], sondern z.B. [0][relais][status_relais_1]. Deshalb:
    PHP-Code:
    echo $data[0]['relais']['status_relais_1']; 
    Ausgabe:
    Code:
    0

    Kommentar


    • #3
      Danke, es kann so einfach sein. Hast mir sehr geholfen. Toll!

      Kommentar

      Lädt...
      X