从php中的json回调中获取POST数据

时间:2014-01-10 19:12:28

标签: php json

我正在使用一个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变量。

1 个答案:

答案 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;

示例:http://3v4l.org/dqBjT

请记住,extract可能会覆盖其他局部变量,通常不被视为良好做法。我建议您在$array

中访问所需的数据

更新:听起来您首先要努力访问发布的JSON字符串。有两种可能性:

  1. 如果数据是作为普通的POST键/值对发送的,您可以在页面上执行print_r($_POST),您应该看到json字符串所在的位置。

  2. 它可能是作为原始POST数据发送的,而不是键/值对。在这种情况下,您需要查看file_get_contents("php://input");。试着回应一下。如果您找到了JSON字符串,那么只需设置$jsonString = file_get_contents("php://input");并继续json_decode下一步。