尝试解码json时,已编码的json数组在cookie中损坏

时间:2019-01-20 20:41:30

标签: php json cookies

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

请参阅下面的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。

0 个答案:

没有答案