我正在尝试通过这种方式将 JSON 字符串从 PHP Controller 传递到 twig 模板:
$data['dist_result'] = json_encode($distribution_service->setDistribution($ids,$distribution));
$this->display('backend/shipments/distributor_selection.twig', $data);
这是 twig 模板上的 javascript:
{% block javascripts %}
<script>
var dist_result = "{{ dist_result }}";
//var dist_result = dist_result.replace(""","\"");
console.log(dist_result);
var data = JSON.parse(dist_result);
console.log(data);
</script>
{% endblock %}
无论有没有替换,它都不起作用。
这是 JSON 字符串:
[
[
1,
"Mujer",
"18-50",
1,
"Zona1-Noreste",
"2",
1,
1,
1
],
[
2,
"Hombre",
"18-50",
1,
"Zona1-Noreste",
"2",
0,
0,
2
],...
最佳答案
理想情况下,您希望服务器端不对结果进行 html 编码。
但是如果不可能做到这一点,那么一个简单的方法就是让浏览器对其进行解码。
例如..
var txt = `[
[
1,
"Mujer",
"18-50",
1,
"Zona1-Noreste",
"2",
1,
1,
1
],
[
2,
"Hombre",
"18-50",
1,
"Zona1-Noreste",
"2",
0,
0,
2
]
]`;
var b = document.createElement("div");
b.innerHTML = txt;
var j = JSON.parse(b.innerText);
console.log(j);
关于javascript - JSON.parse 解析“字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58446295/