我有一个包含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调用
答案 0 :(得分:4)
要在PHP中输出JSON,请输出通过json_encode
传递PHP结构的结果。
文档中的示例:
<?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
答案 1 :(得分:1)
我找到了解决方案
calendar.setDayArray({{ dayArray | raw }});
使用raw来允许html