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 に答える