【发布时间】:2013-03-07 19:48:43
【问题描述】:
我正在使用将 JSON 数据发送到我托管的远程服务器的 API。如果有人使用 beanstalk,我基本上是在发送一个网络钩子,这样你就可以看到 JSON 数据 here 的设置(它是一个 GIT 存储库)。无论我尝试什么,我似乎都无法解码 JSON 对象。
我试过了:
$myArray = json_decode($_POST, true);
和
$decodedText = html_entity_decode($json);
$myArray = json_decode($decodedText, true);
和
$json = file_get_contents("php://input");
$myArray = json_decode($json);
但每次解码后的 JSON 出现NULL。帖子数据在那里,原始数据也在那里,但由于某种原因它没有正确解码。
【问题讨论】:
-
您可以将
var_dump($_POST)的输出添加到您的答案中吗?有了这个应该很容易回答 -
var_dump(file_get_contents('php://input'));告诉你什么? -
数据会在
php://input,但只能读取一次。你确定没有其他东西在消耗php://input? -
这段代码
json_decode($_POST, true);试图解码整个数组,所以它总是会给你一个空的结果。尝试使用json_decode($_POST['var_name'], true);。要查找 var_name,请使用 print_r($_POST); -
但是你传递给 json_decode 的是什么?整个 $_POST 数组还是变量 $_POST['var_name']?如果你传递整个数组,你总是会得到一个空结果。