JSON数据接收PHP

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,

服务器接收URL post字符串,如下所示:

{
    "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处剪切以缩短问题。请添加一些解释。现在,您可以单击解决问题的答案左侧的绿色勾选标记。这将答案标记为“已接受”。请添加一些解释。现在,您可以单击解决问题的答案左侧的绿色略图复选标记。这将答案标记为“已接受”。