gpt4 book ai didi

javascript - json_encode() 给出特殊字符,如 '\n' ..我如何在 PHP 中替换它们?

转载 作者:行者123 更新时间:2023-12-02 15:30:48 25 4
gpt4 key购买 nike

我使用 json_encode() 函数编码了一个数组,它给了我一个像这样的字符串..

"[{"details":"power - 2000w \nac-220-240v \/ 50-60hz\n369 degree cordless base\n","model_id":"MC-EK3428 \/ MC-EK3328"}]"

如您所见,它包含特殊字符,例如“\n”。我希望将这些特殊字符替换为 "" 因为在 javascript 中我正在使用JSON.parse(); 函数将此字符串转换为对象。但它给了我一个错误

syntaxerror : missing ) after argument list

我认为这是因为字符串中的特殊字符。我怎样才能转义这些字符?

编辑

php :
$view->jsonencoded_array = json_encode($array);
javascript :
var products = JSON.parse('<?php echo $jsonencoded_array; ?>');//this line gives me the error

更新:

发现错误是这样的:

'<?php echo $jsonencoded_array; ?>'

最佳答案

这里的问题是 \n (以及各种其他组合)在 JavaScript 字符串中具有特殊含义,并且您将 JSON 转储到 JavaScript 字符串中而不对这些字符进行任何转换。

由于 JSON 深受 JavaScript 文字语法的启发,因此您可以使用 json_encode将 PHP 字符串转换为 JavaScript 字符串。

有一些问题,主要是 </script>可以出现在 JSON 文本中而不会引起任何问题,但将其放在 JavaScript 中间 <script>元素将导致 HTML 解析器在字符串中间 chop JavaScript……但 PHP 的默认编码规则将生成 <\/script>这解决了这个问题。

所以:

<?php
$json_array = json_encode($array);
$javascript_string = $json_encode($json_array);
?>
var products = JSON.parse(<?php echo $javascript_string; ?>);

也就是说。 JSON 数组也是 JavaScript 数组,因此您可以完全跳过该步骤。

<?php
$json_array = json_encode($array);
?>
var products = <?php echo $json_array; ?>;

关于javascript - json_encode() 给出特殊字符,如 '\n' ..我如何在 PHP 中替换它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33332826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com