Javascript 摆脱'&引用';从json_编码

Javascript 摆脱'&引用';从json_编码,javascript,php,regex,Javascript,Php,Regex,我有一个将PHP数组编码为json的代码片段,但当我试图解析它时,它会给我错误,因为“值中存在” PHP数组 $arr = array( id => 1, msg => <h1>Some text</h1> <img src="http://test.png">); $arr=array(id=>1,msg=>sometext); Js代码 var json = JSON.parse('<?php echo json_encode($ar

我有一个将PHP数组编码为json的代码片段,但当我试图解析它时,它会给我错误,因为“值中存在”

PHP数组

$arr = array( id => 1, msg => <h1>Some text</h1> <img src="http://test.png">);
$arr=array(id=>1,msg=>sometext);
Js代码

var json = JSON.parse('<?php echo json_encode($arr);?>');
var json=json.parse(“”);
当我对上面的错误进行json_编码时,它用双引号将字符串括起来,这破坏了我的json.parse函数。我尝试使用replace函数,但在json_编码后,它会自动在对象的字符串值周围添加双引号


所以我试着把所有的“替换为”,但它正在替换所有的双引号。我在想,正则表达式是否可以只替换html元素中的“in”或其他内容。在保存时,我无法转义html,因为数据库中已经存在大量数据,更改这些数据有点困难。

在PHP打印JSON时,JSON就已经被解析了

var json = <?php echo json_encode($arr); ?>;
var-json=;
那么什么时候需要
JSON.parse()

JSON.parse()
将已转义的JSON转换为JSON/Javascript对象


JSON.stringify()
的作用正好相反,将JSON转义为字符串。

将JSON插入JavaScript时,无需将其用引号括起来,甚至无需尝试对其进行解析,因为JSON是一个有效的JavaScript对象或数组文本。通过删除引号,可以消除需要转义引号的问题

var json = <?php echo json_encode($arr);?>;
var-json=;

$arr=array(id=>1,msg=>“一些文本”)
您希望得到什么。json字符串必须包装在
中。删除它们会导致json语法错误。改变json_编码产生的内容显然会引入语法错误。您不能通过弄乱json字符串,然后期望json解析器接受您生成的错误文本来重新定义json应该是什么。您不需要这样做:
var json=
就足够了。Hi@Blazemonger我无法在html中转义双引号,因为它已经保存在数据库中。json_encode()将用反斜杠转义双引号,并始终生成有效的JSON。也许你的解码器坏了?