Did*_*olo 5 javascript php json
我正在使用PHP和Javascript来构建某种Web服务.我尝试验证从JS发送到PHP的post参数计算的令牌.假设代码如下:
JS:
token = JSON.stringify(params);
Run Code Online (Sandbox Code Playgroud)
PHP:
token = json_encode($_POST);
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下为什么两个结果JSON字符串的长度不一样吗?
(我试图修改\n\r\tPHP,PHP中的stripslashes,几个JS库)字符串的PHP版本总是有更多的字符.
我遇到了同样的问题,我想比较编码的 json 字符串的加密版本。要使输出json_encode与 javascripts 相同,JSON.stringify您可以执行以下操作:
$php_string = json_encode($data, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE);
Run Code Online (Sandbox Code Playgroud)
小智 7
在JavaScript中,没有引号的JSON密钥是有效的.在PHP中,没有引号的JSON密钥无效.(事实上,正确的JSON语法是键上的引号.)
所以你是对的,差异来自JSON.stringify谁从你的整数键中删除引号.