1

我有一个返回 JSON 的 API 调用,如下所示:

{"subtotal":{"amount":"0.50","currency":"USD"}}

我不确定如何访问“金额”变量。我试过了

$jsonObject = json_decode(returnJSON);
$amount = $jsonObject->{'subtotal'}->{'amount'}

但这不起作用。如何访问这些数据?

4

5 回答 5

3

您可以将其作为关联数组访问:

$jsonObject = json_decode($returnJSON, true);
$amount = $jsonObject['subtotal']['amount'];

http://php.net/manual/en/function.json-decode.php

于 2013-10-20T20:04:24.450 回答
1

尝试这个

$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;
于 2013-10-20T20:05:08.743 回答
1

与所有这些其他注释相反,您也可以将其用作常规对象(这是json_decode的默认值):

$jsonObject = json_decode($returnJSON);
$amount = (float)$jsonObject->subtotal->amount;

var_dump($amount); //float(0.50)
于 2013-10-20T20:07:53.370 回答
0

什么不起作用?错误信息是什么?你得到一个

试图在第 3 行的 MyPath\myPHPFile 中获取非对象的属性

错误信息?

在这种情况下,这是因为您的 JSON 有缺陷,缺少右括号。在修复它之后,它可以在我这边以您想要的方式访问它。

另外,不要忘记在 PHP 中用分号结束每一行。

于 2013-10-20T20:05:24.230 回答
0

你需要的都在这里:

http://php.net/manual/en/function.json-decode.php#example-3736

检查第一个示例。

于 2013-10-20T20:06:15.297 回答