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 数据。