无法在PHP中访问或解析解码的json结构

无法在PHP中访问或解析解码的json结构,php,shopify,json,Php,Shopify,Json,我正在尝试访问解码的json结构,其中$encoded包含来自Shopfify API GET/admin/orders/450789469.json的响应(请参阅) $decoded的转储显示已解码的嵌套数组,但当我尝试访问单个元素时,没有显示任何内容 echo $decoded->orders[0]->buyer_accepts_marketing; 谁能解释一下为什么解码后的json结构无法访问?谢谢当您将“true”用作第二个参数时,所有内容都将变成数组而不是对象 请尝试

我正在尝试访问解码的json结构,其中
$encoded
包含来自Shopfify API GET
/admin/orders/450789469.json的响应(请参阅)

$decoded的转储显示已解码的嵌套数组,但当我尝试访问单个元素时,没有显示任何内容

echo $decoded->orders[0]->buyer_accepts_marketing; 
谁能解释一下为什么解码后的json结构无法访问?谢谢

当您将“true”用作第二个参数时,所有内容都将变成数组而不是对象

请尝试
$decoded['orders'][0]['buyer\u accepts\u marketing']

这一行

$decoded= json_decode($encoded_input, true);
告诉PHP将字符串解码为数组,但是

$decoded->orders[0]->buyer_accepts_marketing; 
您尝试将其作为对象访问。你可以尝试使用

$decoded['orders'][0]['buyer_accepts_marketing'];
相反

编辑:另请参见文档:

编辑2:根据api规范,您应该访问

$decoded['order']['buyer_accepts_marketing'];

此外,键是
订单
,而不是
订单
。根据他们的文档。@RocketHazmat,但示例响应显示了其他情况。@MatteoTassinari:什么示例响应?下面是他正在调用的API:我知道这听起来很奇怪,但就是无法检索元素。这是显示嵌套数组结构的var_dump($decoded):数组(3){[0]=>array(48){[“买方接受_营销”]=>bool(true)[“取消原因”]=>NULL[“取消在”]=>NULL[“购物车令牌”]=>string(32)“BE0DC3AE66A479143539405372FFF53请指定您转储了什么以及您试图如何访问它。我已将导入的订单转储为$decoded=json_decode($encoded_input,true);var_dump($decoded);我正在尝试将此结构的元素显示为:$decoded['orders']['buyer_accepts\u marketing'];我可以像在foreach($decoded['orders']as$order){echo“status:”.$order['buyer\u accepts\u marketing'].“\n”}中一样检索循环中的元素;但是有没有一种方法可以在一条语句中检索单个数组元素?您是否尝试过
$order=$decoded['orders'][0]
然后
echo$order['buyer\u accepts\u marketing']
$decoded['order']['buyer_accepts_marketing'];