我有一个返回 JSON 的 API 调用,如下所示:
{"subtotal":{"amount":"0.50","currency":"USD"}}
我不确定如何访问“金额”变量。我试过了
$jsonObject = json_decode(returnJSON);
$amount = $jsonObject->{'subtotal'}->{'amount'}
但这不起作用。如何访问这些数据?
您可以将其作为关联数组访问:
$jsonObject = json_decode($returnJSON, true);
$amount = $jsonObject['subtotal']['amount'];
尝试这个
$returnJSON = '{"subtotal":{"amount":"0.50","currency":"USD"}}';
$jsonObject = json_decode($returnJSON, true);
$amount = $jsonObject['subtotal']['amount'];
或者
$returnJSON = '{"subtotal":{"amount":"0.50","currency":"USD"}}';
$jsonObject = json_decode($returnJSON);
$amount = $jsonObject->subtotal->amount;
与所有这些其他注释相反,您也可以将其用作常规对象(这是json_decode
的默认值):
$jsonObject = json_decode($returnJSON);
$amount = (float)$jsonObject->subtotal->amount;
var_dump($amount); //float(0.50)
什么不起作用?错误信息是什么?你得到一个
试图在第 3 行的 MyPath\myPHPFile 中获取非对象的属性
错误信息?
在这种情况下,这是因为您的 JSON 有缺陷,缺少右括号。在修复它之后,它可以在我这边以您想要的方式访问它。
另外,不要忘记在 PHP 中用分号结束每一行。