如何解决无法从带有对象的外部文件输出 JSON 数据
我的 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 有一些参数,第二个参数表示返回一个数组而不是一个对象,并且您以对象的形式访问您的数据(-> 运算符),因此您需要在第二个参数上表示 false
$data = json_decode($content,false);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。