我正在努力调用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等方面挣扎,但不知道如何做到这一点。希望你能帮忙。
答案 0 :(得分:4)
您可以使用json_decode
:
$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;
等等你感兴趣的所有值。