php – Twig与Symfony 2显示在prod和dev之间不同的json编码变量

我们正在构建一个Symfony 2应用程序,从控制器发送一些数据来查看:

调节器

$user = array(
    'configuration' => array(
        'levels' => array(
            'warning' => 0.05,'danger'  => 0.10,),);

return $this->render(
    'MyWebsiteBundle:Core:searchResults.html.twig',array(
        'userJSON'  => json_encode($user)
    )
);

视图

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

结果

在dev上,结果看起来像这样,按预期工作:

user = $.parseJSON("\x7B\x22configuration\x22\x3A\x7B\x22levels\x22\x3A\x7B\x22warning\x22\x3A0.05,\x22danger\x22\x3A0.1\x7D\x7D\x7D");

另一方面,在prod上,结果以不同的方式编码,从而在控制台中显示错误:

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

控制台错误:未捕获语法错误:意外的令牌&

什么产生这个差异?

编辑:另外查看@ Lulhum的解决方案.如果它更好,最好选择它作为正确的答案.

“问题”是Twig自变量变量.我使用Twig的原始过滤器来跳过自动转换,如下所示:

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

现在打印:

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

链接:
Symfony 2 Docs – Output escaping

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


如何选择合适的 C++ Web 开发框架?
利用 C++ 框架构建高并发 Web 应用的策略
用 C++ 框架开发跨平台图形应用程序
golang框架中安全编码实践的最佳指南是什么?
golang框架与其他语言框架在设计理念上的区别有哪些?
C++ 图形框架与其他语言框架的比较
C++ 框架与其他 Web 开发框架的对比分析
使用 C++ 框架构建大型项目最佳实践
C++ 框架如何提高大型项目开发效率
C++ 框架中依赖注入的持续集成与部署工具
如何与社区协作和贡献到自定义 Golang 框架?
C++ 框架在大型项目中如何实现模块化开发
使用 C++ 框架开发跨平台 Web 应用
C++ 框架在大型项目中的优缺点
golang框架在性能上的优势体现在哪些方面?
C++ 框架在嵌入式系统内存优化中的优势
golang框架在人工智能与机器学习中的作用
如何扩展 Golang 框架以支持特定功能?
如何利用 Go Modules 和依赖项管理来自定义 Golang 框架?
Golang 框架中的性能优化技巧