首页 > 解决方案 > 尝试解码 json 时,编码的 json 数组在 cookie 中损坏

问题描述

我将在下面确切解释正在发生的事情。任何关于修复的想法都会非常感谢。

见下面我的 PHP 数组..

$myArray = array( 145 => true, 134 => true, 152 => true);

我的数组然后 var 转储了..

array(3) { [145]=> bool(true), [134]=> bool(true), [152]=> bool(true) }

然后我对我的数组进行json编码..

$myJson = json_encode($myArray);

我编码的 json var 转储结果是..

string(34) "{"145":true,"134":true,"152":true}"

然后我使用这样的json字符串设置我的cookie..

setcookie('mycookie', $myJson);

然后这是设置后的cookie内容..

%7B%22145%22%3Atrue%2C%22134%22%3Atrue%2C%22152%22%3Atrue%7D


好的,这就是麻烦开始的地方

然后我使用这个获取cookie内容..

$myCookie = $_COOKIE['mycookie'];

$myCookie这是..的 var 转储

string(40) "{\"131\":true,\"134\":true,\"152\":true}"

如您所见,这与我在 cookie 中设置的字符串不同。现在有反斜杠,比如它被转义或其他东西。为什么会这样?

如果我现在尝试解码 json,它会返回NULL.

谁能理解为什么会这样?当然我不应该用字符串替换这些反斜杠吗?我想做的就是解码json。我的原始编码字符串解码得很好,只是当它被添加到 cookie 中时,它会破坏我的 json。

标签: phpjsoncookies

解决方案


推荐阅读