Twig对象数组转JavaScript数组失败:json_encode返回空数组求助
解决Twig数组转JavaScript数组/对象返回空的问题
我来帮你搞定这个问题!你遇到的空数组问题,核心原因是Twig默认的HTML转义机制干扰了JSON的解析,下面给你具体的解决方案和解释:
问题根源
你直接使用{{ itm|json_encode }}时,Twig会自动转义HTML特殊字符(比如双引号会被转换成")。输出到页面的内容会变成类似这样的转义字符串:
var arrAll = [{"Test1":"Testtt1","Test2":"Testtt2"}];
这种转义后的内容不是有效的JSON格式,JavaScript自然无法正确解析,最终得到空数组或者解析错误。
正确解决方案
只需要在json_encode后面加上raw过滤器,禁用Twig的自动转义,让JSON保持原始格式:
Twig代码示例
{# 你的Twig数组定义示例 #} {% set itm = [{"Test1": "Testtt1", "Test2": "Testtt2"}] %}
JavaScript代码示例
var arrAll = {{ itm|json_encode|raw }};
验证效果
添加完代码后,你可以在浏览器控制台打印arrAll,就能看到预期的结果:
console.log(arrAll); // 输出:[{Test1: "Testtt1", Test2: "Testtt2"}]
这样就能顺利把Twig的数组/对象转换成JavaScript可识别的结构啦!
内容的提问来源于stack exchange,提问作者Bleron Parduzi
相关产品推荐
相关产品推荐

