我是php的新手,我的目标是使用Apache2和PHP7将Particle Cloud(IoT cloud)中的JSON数据发送到我的Ubuntu 18.04服务器。我正在编写用于解析JSON数据的php脚本,但是在访问POSTED数据的值时遇到问题
我尝试遵循不同的示例来说明如何使用$_POST array
来转换json_decode()
,但是我仍然不知道为什么它不起作用
我的文件data.json
带有JSON数据
{"key1":"value1", "key2":"value2"}
我的parser.php
脚本是
<?php
$incoming = $_POST;
var_dump($incoming);
$data = json_decode(json_encode($var1), true);
var_dump($data);
?>
在Ubuntu 18.04终端中,我使用curl测试转储的变量
curl -v -X POST 'Content-Type: application/json;charset=UTF-8' -d data.json http://localhost/parser.php
我的结果
for $incoming
array(1){
["{"key1":"value1","key2":"value2"}"]=>
string(0) ""
}
for $data
object(stdClass)#1 (1) {
["{"key1":"value1","key2":"value2"}"]=>
string(0) ""
}
但是我希望像{"key1":"value1","key2":"value2"}
这样的东西,而不是[]中的数组或对象
我无法通过键访问值。例如,
var_dump($data['key1']);
带来NULL