JSON将字符串而不是数组或对象从PHP传递给Javascript

时间:2015-10-09 14:30:53

标签: javascript php arrays json

我在将多维和关联数组从php传递给Javascript时遇到了麻烦。我用JSON转换它,使用:

_SESSION =  '<?php print json_encode($_SESSION) ?>';

我也试过

_SESSION =  '<?php print json_encode($_SESSION, JSON_PRETTY_PRINT) ?>';
_SESSION =  $.parseJSON('<?php print json_encode($_SESSION) ?>');

它们都给我一些错误:Uncaught SyntaxError:Unexpected token ILLEGAL。

但是,第一个没有给我任何错误,我可以在Javascript中访问它。然后输出:

{"items":{"221163":{"CodeComplete":null,"Project":"Coding","Team":"Mail","TimeSpent":25","Children":[]}}, {"221165":{CodeComplete":null,"Project":"Coding","Team":"Batman","TimeSpent":"40","Children":[]}}

我相信这就像一个字符串,因为_SESSION [0]输出“{”。但是,我希望它是一个数组或一个对象。数组在php中看起来像这样:

_SESSION( "items" => array(
                        221163 =>
                                 array( CodeComplete => null
                                        Project => "Coding"
                                        Team => "Mail"
                                        Timespent => "25"
                                        Children => array(
                                                           )
                                      )
                        221165 =>
                                 array( CodeComplete => null
                                        Project => "Coding"
                                        Team => "Stones"
                                        Timespent => "40"
                                        Children => array(
                                                           )
                                       )

                           )             
        )

我希望能够以与我在php(不是litterary ofcorse)相同的方式访问此数组,但_SESSION["items"]_SESSION.items未定义,因为_SESSION是一个字符串。 ..

我做错了什么想法?

1 个答案:

答案 0 :(得分:0)

正如@ CD001在他的评论中所建议的那样,我删除了&#39;&#39;从转移到成为

_SESSION = <?php print json_encode($_SESSION) ?>; 
相反,现在一切正常,谢谢!