在处理api post过来的json数据的时候,一直无法解析
json 字符串
{"code":"U2650VUq2Q93fQaFFvlJeg==","timestamp":1503987065,"nonce":"abcdefg","userId":56,"signature":"b5fadf482bb755374bf8fcbf399c97d37681b8c0"}
输出接收的字符串的时候
{\"code\":\"U2650VUq2Q93fQaFFvlJeg==\",\"timestamp\":1503987065,\"nonce\":\"abcdefg\",\"userId\":56,\"signature\":\"b5fadf482bb755374bf8fcbf399c97d37681b8c0\"}
直接使用json_decode()函数进行解析,结果为null无法解码.
所以我复制了出来,单独测试下
$str = "{\"code\":\"U2650VUq2Q93fQaFFvlJeg==\",\"timestamp\":1503987065,\"nonce\":\"abcdefg\",\"userId\":56,\"signature\":\"b5fadf482bb755374bf8fcbf399c97d37681b8c0\"}
";
print_r(json_decode($str,true));
能解析啊妥妥的,但是在接口测试的时候就是无法解析.
后面突然想到.
php使用$_POST
接收数据的时候,字符串是以单引号包含的,在单引号下,转义的\
并没有被当做转义处理,被当做有效字符,而我测试的时候,使用
双引号
,所以接收到的数据必须进行反转义
示例代码:
json_decode(stripslashes($_POST['data']),true);