JSON数据接收PHP
服务器接收URL post字符串,如下所示:JSON数据接收PHP,php,json,Php,Json,服务器接收URL post字符串,如下所示: { "head": { "comm": 7, "compress": false, "ms": 1451029423348, "encrypt": false, "version": 2 }, "body": { "data1": 0, "data2": 59, "data3": -40,
{
"head": {
"comm": 7,
"compress": false,
"ms": 1451029423348,
"encrypt": false,
"version": 2
},
"body": {
"data1": 0,
"data2": 59,
"data3": -40,
"data4": 0,
"data5": 0,
}
}
我有如下PHP文件需要从URL或java应用程序接收JSON格式的数据,并将帖子发送到服务器。使用服务器PHPVER5.4.45,我无法更改它
$json = file_get_contents('php://input');
$string = get_magic_quotes_gpc() ? stripslashes($json) : $json;
$object = json_decode($string);
var_dump($object);
然后我想把数组中的每个项放到数组中的$data变量中,每个字段放到$data数组中
我总是收到NULL,有什么问题吗?如果我将您的json粘贴到这里:它会给出一个“错误:第14行的解析错误:”
如果我将您的json粘贴到这里,当您删除
“data5:0,
之后的逗号时,可能会有所帮助:它会在第14行给出一个“Error:Parse Error:”
如果您删除
“data5”:0,
之后的逗号,JSON数据不正确,可能会有所帮助。请在删除,
之后的“数据”:0
正确的JSON:
JSON数据不正确。请在删除
,
之后的“数据”:0
正确的JSON:
试试这个:
$json = file_get_contents('php://input');
$string = get_magic_quotes_gpc() ? stripslashes($json) : $json;
$object = json_decode($string);
通过使用foreach函数遍历对象
元素并将其类型转换为数组
foreach($object as $k=>$v){
$data[$k] = (array)$v;
}
结果如下:
Array
(
[head] => Array
(
[comm] => 7
[compress] =>
[ms] => 1451029423348
[encrypt] =>
[version] => 2
)
[body] => Array
(
[data1] => 0
[data2] => 59
[data3] => -40
[data4] => 0
[data5] => 0
)
)
试试这个:
$json = file_get_contents('php://input');
$string = get_magic_quotes_gpc() ? stripslashes($json) : $json;
$object = json_decode($string);
通过使用foreach函数遍历对象
元素并将其类型转换为数组
foreach($object as $k=>$v){
$data[$k] = (array)$v;
}
结果如下:
Array
(
[head] => Array
(
[comm] => 7
[compress] =>
[ms] => 1451029423348
[encrypt] =>
[version] => 2
)
[body] => Array
(
[data1] => 0
[data2] => 59
[data3] => -40
[data4] => 0
[data5] => 0
)
)
如果,如您所说,
$json
是NULL
,“data5”
后面的逗号只是因为被剪切的文本使粘贴的代码更短,而您使用的是PHP如果,如您所说,$json
是NULL
,“data5”
后面的逗号只是因为被剪切的文本使粘贴的代码更短,如果您使用的是PHP,$json的结果是什么?它是否获取请求的数据?解码之前,$string
的值是多少?是否要使用POST?Ehsan Razm khah,是的,通过POST从URL发送的数据用于测试,在现实生活中,JSON数据来自TCP AdamJeffers。解码之前,$string是问题顶部的JSON数据,来自URL或TCP端口。$json的DS9结果为空$json的结果是什么?它是否获取请求的数据?解码之前,$string
的值是多少?是否要使用POST?Ehsan Razm khah,是的,通过POST从URL发送的数据用于测试,在现实生活中,JSON数据来自TCP AdamJeffers。解码之前,$string是问题顶部的JSON数据,来自URL或TCP端口。$json的DS9结果为空我忘了删除逗号,列表达到data20,我在data5处剪切以缩短问题。我忘了删除逗号,列表达到data20,我在data5处剪切以缩短问题。我忘了删除逗号,列表达到data20,我在数据5处剪切以缩短问题。我忘了删除逗号,列表是在数据20处,我在数据5处剪切以缩短问题。请添加一些解释。现在,您可以单击解决问题的答案左侧的绿色勾选标记。这将答案标记为“已接受”。请添加一些解释。现在,您可以单击解决问题的答案左侧的绿色略图复选标记。这将答案标记为“已接受”。