Twig with Symfony 2 displaying json encoded variables different between prod and dev

点点圈 提交于 2019-12-03 06:37:32

Edit: Also check @Lulhum's solution below. Up-vote it if it's better so I will select it as the correct answer.

The "problem" was Twig autoescaping variables. I used Twig's raw filter to skip autoescaping like this:

<script language="javascript">
    user = $.parseJSON('{{ userJSON | raw }}');
</script>

Now it prints:

user = $.parseJSON('{"configuration":{"levels":{"warning":0.05,"danger":0.1}}}');

Links: Symfony 2 Docs - Output escaping

It is better to avoid using the raw filter when possible. You can here achieve the same behavior with the escape filter (doc).

<script language="javascript">
    user = $.parseJSON('{{ userJSON | escape('js') }}');
</script>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!