我正在尝试通过PHP控制器将JSON字符串传递给树枝模板:
$data['dist_result'] = json_encode($distribution_service->setDistribution($ids,$distribution));
$this->display('backend/shipments/distributor_selection.twig', $data);
这是树枝模板上的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
],...
答案 0 :(得分:1)
理想情况下,您希望服务器端不对结果进行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);
答案 1 :(得分:0)
您可以使用dist_result.replace(""","\"")
代替dist_result.replace(/"/g, '"')
查看有关String.prototype.replace()
的更多信息代码:
var dist_result = `[
[
1,
"Mujer",
"18-50",
1,
"Zona1-Noreste",
"2",
1,
1,
1
],
[
2,
"Hombre",
"18-50",
1,
"Zona1-Noreste",
"2",
0,
0,
2
]
]`;
var dist_result_replaced = dist_result.replace(/"/g, '"');
var dist_result_parsed = JSON.parse(dist_result_replaced);
console.log(dist_result_parsed);