[英]JSON.parse parsing " string
我正在尝试将 JSON 字符串从 PHP controller 传递给 Z5669B8E4807543EF439DZF 模板
$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);
您可以代替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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.