Javascript json#u encode()提供特殊字符,如'\n';。。如何在PHP中替换它们?

Javascript json#u encode()提供特殊字符,如'\n';。。如何在PHP中替换它们?,javascript,php,json,Javascript,Php,Json,我使用json\u encode()函数编码了一个数组,它给了我一个如下的字符串 "[{"details":"power - 2000w \nac-220-240v \/ 50-60hz\n369 degree cordless base\n","model_id":"MC-EK3428 \/ MC-EK3328"}]" 正如您所看到的,它包含诸如“\n”之类的特殊字符。我希望这些特殊字符被替换为”,因为在javascript中,我使用的是JSON.parse()函数将此字符串转换为对象。。

我使用
json\u 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; ?>'
“”

在使用JavaScript进行解析时,您肯定遗漏了某些内容,或者存在其他问题的原因;因为可以很好地处理
\n
和其他特殊字符,如
\
等,并且可以在没有任何显式工作的情况下正确地转义它们

我建议您检查生成的JSON和提供给JavaScript的JSON,看看两者之间是否有遗漏

注意:你可以做一个测试,但不建议这样做。最好坚持使用
json\u encode
,因为它是标准的函数,而且运行良好

编辑: 您应该回显
$view->jsonencoded_数组
,而不仅仅是
$jsonencoded_数组
,无需解析已经存在的JSON对象

php:

javascript:

var products = <?php echo $view->jsonencoded_array; ?>;
var产品=;

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

由于JSON深受JavaScript文本语法的启发,因此可以使用
JSON\u encode
将PHP字符串转换为JavaScript字符串

有一些缺陷,主要代码是“代码> <代码>可以在JSON文本中出现而不会引起任何问题,但是在JavaScript <代码> < /Case>元素的中间会导致HTML解析器在字符串中间截断您的JavaScript…但是PHP的默认编码规则将生成<代码> <代码> WHI。ch解决了这个问题

因此:


var products=JSON.parse();
JSON数组也是JavaScript数组,所以您可以完全跳过这一步

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

var乘积=;
json\u encode()两次帮助我解决了这个问题

$view->jsonencoded = json_encode(json_encode($array));

调用JSON.parse(obj)会产生错误?有什么原因不能在JS中替换吗?你可能想看看解析JSON对象的代码。我猜你是
JSON.parse([{“details”…
preg\u replace()?但是在用JSON\u encode()对数组进行编码之后,它会给我这个结果……“[{”详细信息“:“power-2000w\nac-220-240v\/50-60hz\n369度无绳底座”;“model_id:“MC-EK3428\/MC-EK3328”}]”新行“\n”@SNT93是一个有效的JSON,没有问题。在这里验证它:那么为什么我不能将其分配给javascript中的变量?并给出错误:syntaxerror:missing)争论之后list@SNT93检查我的编辑,这可能是原因。非常感谢json_编码两次帮助我…json_编码(json_编码($array));
<?php
$json_array = json_encode($array);
$javascript_string = $json_encode($json_array);
?>
var products = JSON.parse(<?php echo $javascript_string; ?>);
<?php
$json_array = json_encode($array);
?>
var products = <?php echo $json_array; ?>;
$view->jsonencoded = json_encode(json_encode($array));