Ankündigung

Einklappen
Keine Ankündigung bisher.

JSON auslesen / ausgeben

Einklappen

Neue Werbung 2019

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

  • JSON auslesen / ausgeben

    Hallo,
    ich möchte eine JSON Datei auslesen und später weiterverarbeiten, doch leider hänge ich mit dem auslesen fest, da es mehrere Dimensionen hat.

    Code:
     
     {"SKUS":{ "528-GOON15-BK":{"available_qty":7,"expected_qty":0,"expected_date":null,"outlisted":0,"EAN":"4251256232899"},  "528-GOON15-GD":{"available_qty":3,"expected_qty":0,"expected_date":null,"outlisted":0,"EAN":"4251256232912"},  "528-GOON15-ROGD":{"available_qty":6,"expected_qty":0,"expected_date":null,"outlisted":0,"EAN":"4251256232905"},  "528-GOON15-SV":{"available_qty":18,"expected_qty":0,"expected_date":null,"outlisted":0,"EAN":"4251256232882"}  },"success":true,"action":"stock"}
    Bis her habe ich es geschafft die Artikelnummer auszulesen, doch leider komme ich nicht an die weiteren Daten, die unter der Artikelnummer liegen.

    Code:
    <?
    $url = 'all.json';
    $datei = file_get_contents($url);
    $daten =json_decode($datei,true);
    
    $keys = array_keys($daten);
    for($i = 0; $i <count($daten);$i++){
    foreach($daten{$keys[$i]] as $key => $value) {
    echo $key . " : ".$value."<br>";
    }
    echo "<br>";
    ?>
    Fehlermeldung ist halt das $value weiterhin ein Array ist. Wie kann ich dort nun die jeweilige "available_qty" ausgeben?

    Hoffe mir kann jemand weiterhelfen

  • #2
    PHP-Code:
    <?php
    $json 
    '{"SKUS":{ "528-GOON15-BK":{"available_qty":7,"expected_qty":0,"expected_date":null,"outlisted":0,"EAN":"4251256232899"},  "528-GOON15-GD":{"available_qty":3,"expected_qty":0,"expected_date":null,"outlisted":0,"EAN":"4251256232912"},  "528-GOON15-ROGD":{"available_qty":6,"expected_qty":0,"expected_date":null,"outlisted":0,"EAN":"4251256232905"},  "528-GOON15-SV":{"available_qty":18,"expected_qty":0,"expected_date":null,"outlisted":0,"EAN":"4251256232882"}  },"success":true,"action":"stock"}';

    $array json_decode($jsontrue);

    foreach ( 
    $array as $firstdimension ){

        if ( 
    is_array($firstdimension) ){

            foreach ( 
    $firstdimension as $seconddimension ){
                echo 
    'Available: ' $seconddimension['available_qty'] . "<br>\n";
            }
        }
    }

    // oder direkt zum Feld, wenn man das Array kennt
    echo $array['SKUS']['528-GOON15-BK']['available_qty'];
    ?>

    Kommentar


    • #3
      Als Programmierer sollte man das Array schon kennen, mindestens seine Struktur. Für eine Ausgabe des Arrays eignet sich diese Funktion
      PHP-Code:
      function dump_arrobj($arrobj) {
          echo 
      '<pre>'.str_ireplace'stdClass::__set_state''(object)'var_export($arrobj,true) ).'</pre>';

      hier aus der Wissenssammlung sehr gut, da die Ausgabe per Copy&Paste für auch für Testzwecke als PHP-Quellcode verwendet werden kann.

      PHP-Code:
      dump_arrobj($array); 
      Ausgabe:
      PHP-Code:
      array (
        
      'SKUS' => 
        array (
          
      '528-GOON15-BK' => 
          array (
            
      'available_qty' => 7,
            
      'expected_qty' => 0,
            
      'expected_date' => NULL,
            
      'outlisted' => 0,
            
      'EAN' => '4251256232899',
          ),
          
      '528-GOON15-GD' => 
          array (
            
      'available_qty' => 3,
            
      'expected_qty' => 0,
            
      'expected_date' => NULL,
            
      'outlisted' => 0,
            
      'EAN' => '4251256232912',
          ),
          
      '528-GOON15-ROGD' => 
          array (
            
      'available_qty' => 6,
            
      'expected_qty' => 0,
            
      'expected_date' => NULL,
            
      'outlisted' => 0,
            
      'EAN' => '4251256232905',
          ),
          
      '528-GOON15-SV' => 
          array (
            
      'available_qty' => 18,
            
      'expected_qty' => 0,
            
      'expected_date' => NULL,
            
      'outlisted' => 0,
            
      'EAN' => '4251256232882',
          ),
        ),
        
      'success' => true,
        
      'action' => 'stock',

      Kommentar


      • #4
        Du kannst auch bei Objekten bleiben:

        PHP-Code:
        <?php
        $json 
        '{"SKUS":{ "528-GOON15-BK":{"available_qty":7,"expected_qty":0,"expected_date":null,"outlisted":0,"EAN":"4251256232899"},  "528-GOON15-GD":{"available_qty":3,"expected_qty":0,"expected_date":null,"outlisted":0,"EAN":"4251256232912"},  "528-GOON15-ROGD":{"available_qty":6,"expected_qty":0,"expected_date":null,"outlisted":0,"EAN":"4251256232905"},  "528-GOON15-SV":{"available_qty":18,"expected_qty":0,"expected_date":null,"outlisted":0,"EAN":"4251256232882"}  },"success":true,"action":"stock"}';
        $myJSONObject json_decode($json);

        foreach (
        $myJSONObject->SKUS as $key=>$val){
           echo  
        $key.'<br>';
           foreach (
        $val as $thisKey=>$thisVal){
              echo 
        $thisKey.' : '.$thisVal.'<br>';
           }
        }
        //Direktzugriff
        echo $myJSONObject->SKUS->{"528-GOON15-BK"}->available_qty.'<br>';
        echo 
        $myJSONObject->success;
        ?>

        Kommentar


        • #5
          Danke für eure Antworten, das hilft mir sehr weiter. Schön das man hier so schnell und kompetente Hilfe bekommt .

          Kommentar


          • #6
            Hat sich erledigt

            Kommentar


            • #7
              Was bedeutet "SKU ausgeben"?

              Kommentar


              • #8
                hellbringer SKU erklärt.

                Ich gehe davon er meint dass dann so als Ausgabe:

                528-GOON15-BK
                Available: 7

                528-GOON15-GD
                Available: 3

                Kommentar

                Lädt...
                X