2

我有一个包含 json 的 php 变量,我使用 json_encode 将数组转换为 json。

如果我打印我的 var 我有:

["L","M","M","J","V","S","D"]

但是,如果我在 js 中使用我的 var,我有:

["L","M","M","J","V","S","D"]

我无法解析,因为我有一个错误

Uncaught SyntaxError: Unexpected token & 

有没有办法在我的 js 中获取 json ?

谢谢

编辑:

在php中

$dayArray = array('L','M','M','J','V','S','D');
$dayArray = json_encode($dayArray)

在js中

setDayArray('<?php echo $dayArray ?>');

setDayArray = function(dayArray){
    console.log(dayArray);
}

用树枝

calendar.setDayArray({{ dayArray }});

这可能是由于 symfony 渲染,我发现的唯一方法是使用 json 标头进行 ajax 调用

4

2 回答 2

4

要在 PHP 中输​​出 JSON,请输出通过json_encode.

文档中的示例:

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

输出:

{"a":1,"b":2,"c":3,"d":4,"e":5}

重新更新您的问题,您已经使用过

$dayArray = json_encode($dayArray)
setDayArray('<?php $dayArray ?>'); // Wrong

去掉引号,并包括echo,除非它以其他方式神奇地输出:

$dayArray = json_encode($dayArray)
setDayArray(<?php echo $dayArray ?>);   // Right

当你这样做时,浏览器会看到如下内容:

setDayArray(["L","M","M","J","V","S","D"]);   // Right

而不是

setDayArray('["L","M","M","J","V","S","D"]'); // Wrong
于 2013-07-25T21:27:48.613 回答
1

我找到解决方案

calendar.setDayArray({{ dayArray | raw }});

使用 raw 允许 html

于 2013-09-08T22:24:51.367 回答