2017-09-28 1 views
-1

Ich versuche, die Daten von Bigcommerce durch php angezeigt wird, wenn ich die Bigcommerce :: getCategories run() i eine Reihe von Daten wie folgt erhalten:PHP: Anzeigen von Daten aus Bigcommerce API

[0] => Bigcommerce\Api\Resources\Category Object 
     (
      [ignoreOnCreate:protected] => Array 
       (
        [0] => id 
        [1] => parent_category_list 
       ) 

      [ignoreOnUpdate:protected] => Array 
       (
        [0] => id 
        [1] => parent_category_list 
       ) 

      [fields:protected] => stdClass Object 
       (
        [id] => 88 
        [parent_id] => 0 
        [name] => Dell 
        [description] => 
        [sort_order] => 0 
        [page_title] => 
        [meta_keywords] => 
        [meta_description] => 
        [layout_file] => 
        [parent_category_list] => Array 
         (
          [0] => 88 
         ) 

        [image_file] => 
        [is_visible] => 1 
        [search_keywords] => 
        [url] => /dell/ 
       ) 

      [id:protected] => 88 
      [ignoreIfZero:protected] => Array 
       (
       ) 

      [fieldMap:protected] => Array 
       (
       ) 

     ) 

aber wenn ich Versuchen Sie, dies an JQuery zu übergeben, damit ich es mit dieser Anweisung anzeigen kann: <?php echo json_encode($categories); ?> Ich erhalte ein Array von leeren Objekten, was ist der richtige Weg, um das Array von Objekten in der BigCommerce-API zu erhalten? Vielen Dank.

Antwort

0

Von der ersten Zeile des Codes:

[0] => Bigcommerce\Api\Resources\Category Object

Sie haben ein Objekt, kein Array. Versuchen Sie, es zuerst zu einem Array zu werfen:

$array = (array) $yourObject; 
+2

yup, sollte dies funktionieren, aber nicht aus dem Grund, den Sie denken. json_encode ist vollständig in der Lage, Objekte zu kodieren (während Sie zu glauben scheinen, dass json_encode Objekt nicht kodieren kann, kann es das). aber es wird nicht "geschützte" Eigenschaften von Objekten kodieren, die alle seine Objekt-Arrays sind. Wenn du es in ein Array wirfst, nimmst du die Eigenschaften "protected" komplett weg, weil die Arrays von php kein Sichtbarkeitskonzept haben. – hanshenrik