JSON.parse 与 json_encode 和 html
JSON.parse with json_encode and html
我得到以下 html 字符串:
$htmlString = '<div class="foo">bar</div>';
我想 json_encode 这个字符串并在 javascript 变量中解析它,使用以下代码:
JSON.parse('<?= json_encode($htmlString, JSON_HEX_QUOT | JSON_HEX_TAG); ?>')
不幸的是,我的 javascript returns 出现错误 (Unexpected token f
),因为 class 声明中的双引号打断了 json 字符串。
重要提示: 这是我实际在 JSON 中编码的数组的简化版本。受影响的字符串只是复杂多级数组的一小部分。
将 $htmlString = '<div class="foo">bar</div>';
更改为 $htmlString = "<div class='foo'>bar</div>";
是一种选择,但体积庞大(我将不得不更改大约 500 个视图)
有人有其他解决方案吗?
您不需要 JSON.parse
。你可以这样做:
<script>
var html = <?= json_encode($htmlString) ?>;
</script>
json_encode
的结果已经包含有效的 javascript 数据。
我得到以下 html 字符串:
$htmlString = '<div class="foo">bar</div>';
我想 json_encode 这个字符串并在 javascript 变量中解析它,使用以下代码:
JSON.parse('<?= json_encode($htmlString, JSON_HEX_QUOT | JSON_HEX_TAG); ?>')
不幸的是,我的 javascript returns 出现错误 (Unexpected token f
),因为 class 声明中的双引号打断了 json 字符串。
重要提示: 这是我实际在 JSON 中编码的数组的简化版本。受影响的字符串只是复杂多级数组的一小部分。
将 $htmlString = '<div class="foo">bar</div>';
更改为 $htmlString = "<div class='foo'>bar</div>";
是一种选择,但体积庞大(我将不得不更改大约 500 个视图)
有人有其他解决方案吗?
您不需要 JSON.parse
。你可以这样做:
<script>
var html = <?= json_encode($htmlString) ?>;
</script>
json_encode
的结果已经包含有效的 javascript 数据。