如何在PHP中处理这种类型的返回JSON?

时间:2013-10-20 20:00:46

标签: php json

我有一个API调用,返回的JSON看起来像这样:

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

我不确定如何访问'amount'变量。我试过了

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

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

5 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分: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;

答案 2 :(得分:1)

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

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

var_dump($amount); //float(0.50)

答案 3 :(得分:0)

什么不起作用?什么是错误消息?你得到了吗

  

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

错误消息?

在这种情况下,这是因为你的JSON存在缺陷,缺少一个结束括号。修好之后,我可以按照你想要的方式访问它。

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

答案 4 :(得分:0)

您需要的就是:

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

检查第一个例子。