无法使用对象从外部文件输出 JSON 数据

Can't output JSON Data from external file with an object

我对 JSON & PHP 的问题: 我尝试在我的网站上显示 JSON 值:

JSON内容

{
  "promisArticle": [
    {
      "tradeItem": [
        {
          "hierarchyTradeItemGtin": [
            {
              "value": "04008400304014",
              "quantity": 40
            }
          ],
          "identification": {
            "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",
            "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 .' !';   
}

结果:

My Output: !

当我使用 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
[...]

不知道哪里出了问题

PHP 上的这个函数 json_decode 有一些参数,第二个参数指示 return 一个数组而不是一个对象,并且您正在将数据作为对象访问(->运算符),所以你需要在第二个参数上指明 false

$data = json_decode($content, false);

PHP manual json_decode function