Javascript 摆脱'&引用';从json_编码
我有一个将PHP数组编码为json的代码片段,但当我试图解析它时,它会给我错误,因为“值中存在” PHP数组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
$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。也许你的解码器坏了?