2016-05-26 78 views
0

我正在處理系統,我檢索用戶首選項並將它們插入到帶有JSON的Cookie中,因爲我有一個需要使用Cookie中的值的JavaScript文件。Php對象給JSON返回奇怪的Json

現在,當我使用JSON.Stringify()與JavaScript我得到的數據就像我期望它。 enter image description here

然而,當我去檢查Cookie後它已運行PHP腳本,我得到這個: enter image description here

這裏是php文件我的代碼:

public function onSecurityInteractiveLogin(InteractiveLoginEvent $event){ 
    if($this->securityContext->isGranted('IS_AUTHENTICATED_FULLY')){ 
     $selectedCategories = $event->getAuthenticationToken()->getUser()->getProfile()->getCategories(); 
     setcookie("userInterests",json_encode(get_object_vars($selectedCategories)),(time()+3*60*60*24*30)); 
    } 
} 

任何幫助將不勝感激!

+0

感謝Thamilan,我被禁止張貼圖片。 –

+0

您是否嘗試過打印'json_encode(get_object_vars($ selectedCategories))'屏幕來查看其有效的json? – fire

+0

我知道這可能是一個愚蠢的問題,但我不是在家裏的網絡開發,你能解釋我在哪裏可以找到我的打印結果?我正在使用chrome –

回答

0

在我的情況下,我遇到了很多問題:首先我嘗試在cookie中輸入一個對象(我認爲是一個數組)。由於PHP cookie只保存了urlencode的起始字符串,因此這有奇怪的cookie。

其次,我不知道cookie會自動在PHP中使用urlencoded,以致於丟掉了我。 如果我現在只是使用urldecode,那麼我將從cookie返回數據。它應該只是通過javascript cookie而不進行編輯,我的php cookie將可用。