Моя проблема с JSON & PHP: Я пытаюсь показать значения JSON на своем сайте:

Содержание JSON

{
  "promisArticle": [
    {
      "tradeItem": [
        {
          "иерархияTradeItemGtin": [
            {
              "value": "04008400304014",
              "количество": 40
            }
          ],
          "идентификация": {
            "productGroupConditionDe": "0816",
            "gpcCategory": "10000045",
            "isTradeItemABaseUnit": "true",
            "isTradeItemAConsumerUnit": "true",
            "isTradeItemADespatchUnit": "false",
            "isTradeItemAnInvoiceUnit": "true",
            "isTradeItemAnOrderableUnit": "true",
            "UnitDescriptor": "BASE_UNIT_OR_EACH",
            "опасные товары": "ZNA",
            "effectiveDate": "2019-10-08T22:00:00Z",
            "startAvailabilityDate": "2011-12-26T23:00:00Z",
            "lastChangeDate": "2019-10-08T22:00:00Z",
            "biocideRegulationCode": "NOT_APPLICABLE",
            "quantityOfBaseUnits": 1,
            "zasVersion": "ZAS7",
            "baseUnitGtin": "00000040084015"
          }
        }
      ]
    }
  ]
}

JSON-код является действительным.

Код PHP

$filename = 'https://urltojson.json'
$content = file_get_contents($filename);
$data = json_decode($content);

foreach($data->promisArticle as $promisArticle)
{
echo 'My Output:' .$promisArticle->tradeItem->identification->baseUnitGtin .' !';
}

Результат:

Мой результат: !

Когда я использую print_r($data);, я получаю следующее:

stdClass Object ( [promisArticle] => Array ( [0] => stdClass Object ( [tradeItem] => Array ( [0] => stdClass Object ( [hierarchyTradeItemGtin] => Array ( [0] => stdClass Object ( [value] => 04008400304014 [quantity] => 40 ) ) [identification] => stdClass Object ( [productGroupConditionDe] => 0816 [gpcCategory] => 10000045 [isTradeItemABaseUnit] => true [isTradeItemAConsumerUnit] => true [isTradeItemADespatchUnit] => false [isTradeItemAnInvoiceUnit] => true [isTradeItemAnOrderableUnit] => true [unitDescriptor] => BASE_UNIT_OR_EACH [dangerousGoodsRegulation] => ZNA [effectiveDate] => 2019-10-08T22:00:00Z
[...]

Я не знаю, где проблема.

Pascal

Ответов: 1

Ответы (1)

Эта функция json_decode на PHP имеет несколько параметров, второй параметр указывает на возврат массива вместо объекта, а вы обращаетесь к данным как к объекту (оператор ->), поэтому вам нужно указать false во втором параметре

$data = json_decode($content, false);

PHP manual json_decode function

2022 WebDevInsider