我正在使用一个API,它使用json POST请求将回调发送到我设置的页面。
回调示例:
{
"order": {
"id": "5RTQNACF",
"created_at": "2012-12-09T21:23:41-08:00",
"status": "completed",
"total_btc": {
"cents": 100000000,
"currency_iso": "BTC"
},
"custom": "order1234",
}
我需要知道如何获取每个参数并将它们设置为php变量。
答案 0 :(得分:2)
使用json_decode
获取此字符串并获取数组:
$array = json_decode($jsonString, true);
如果你真的想要这些作为单独的php变量,请使用extract
:
extract($array); // now you have a local $order variable
echo $order['custom']; // etc...
extract($order); // now you have local variables $id, $status, etc
echo $id;
请记住,extract
可能会覆盖其他局部变量,通常不被视为良好做法。我建议您在$array
。
更新:听起来您首先要努力访问发布的JSON字符串。有两种可能性:
如果数据是作为普通的POST键/值对发送的,您可以在页面上执行print_r($_POST)
,您应该看到json字符串所在的位置。
它可能是作为原始POST数据发送的,而不是键/值对。在这种情况下,您需要查看file_get_contents("php://input");
。试着回应一下。如果您找到了JSON字符串,那么只需设置$jsonString = file_get_contents("php://input");
并继续json_decode
下一步。