PHP - 将API的JSON结果提取到几个PHP变量

时间:2018-01-15 21:50:27

标签: php json api

我正在努力调用API的响应。当我打电话给它时,我得到了回复:

{
    "id": 22072,
    "currency": "EUR",
    "bitcoin_uri": "bitcoin:2MvAmq3rXhsc3SDrhv2t5Erd9EsvUi9sptB?amount=0.071131",
    "status":"expired",
    "price":"150.99",
    "btc_amount":"0.07113100",
    "created_at":"2018-01-09T20:58:33+00:00",
    "expire_at":"2018-01-09T21:18:33+00:00",
    "bitcoin_address":"2MvAmq3rXhsc3SDrhv2t5Erd9EsvUi9sptB",
    "order_id":"aaaannnddfdfd",
    "payment_url":"https://sandbox.coingate.com/invoice/39bae8ac-8b76-405a-bb5b-38dd6e6f3f91"
} 

如何将invidual值作为PHP变量的值获取,以便我可以例如做:

echo $Currency
echo $ID

我在与JSON等方面挣扎,但不知道如何做到这一点。希望你能帮忙。

2 个答案:

答案 0 :(得分:4)

您可以使用json_decode

将JSON字符串转换为PHP对象
$apiObject = json_decode($apiResult);

之后,您可以访问不同的字段:$apiObject->id$apiObject->currency

如果你需要它们作为直接变量,你需要将JSON提取为关联数组而不是对象,这可以使用json_decode的第二个参数来完成:

$apiArray = json_decode($apiResult, TRUE);

之后,您可以将字段作为变量与extract

绑定
extract($apiArray);
echo $id;
echo $currency;

答案 1 :(得分:0)

我认为这个字符串在一个像

这样的变量中
$data = '{"id":22072,
        "currency":"EUR",
        "bitcoin_uri":"bitcoin:2MvAmq3rXhsc3SDrhv2t5Erd9EsvUi9sptB?amount=0.071131",
        "status":"expired",
        "price":"150.99",
        "btc_amount":"0.07113100",
        "created_at":"2018-01-09T20:58:33+00:00",
        "expire_at":"2018-01-09T21:18:33+00:00",
        "bitcoin_address":"2MvAmq3rXhsc3SDrhv2t5Erd9EsvUi9sptB",
        "order_id":"aaaannnddfdfd",
        "payment_url":"https://sandbox.coingate.com/invoice/39bae8ac-8b76-405a-bb5b-38dd6e6f3f91"
}';

因此使用json_decode()将此JSON字符串转换为PHP数据类型,实际上就像这样的对象

$obj = json_decode($data);

然后像这样解决对象中的属性,你不需要将对象中的值移动到标量变量中,它们只是留在对象中。

echo 'The ID is ' . $obj->id;
echo 'The currency is ' . $obj->currency;

等等你感兴趣的所有值。