我有这个php:
<?php
$jsonarr = array("haha" => array("hihi'hih","hu'"huh"));
print json_encode($jsonarr);
得到
{"haha":["hihi'hih","hu'"huh"]}
现在,在JSON中。用
解析这个断点Uncaught SyntaxError: Unexpected token h
at Object.parse (native)
,除非我像这样双转义反斜杠
var json = '{"haha":{"hihi''hih":"hu'''"huh"}}';
JSON.parse(json);
如何让php创建一个JSON解析兼容的输出?
同时,我确实得到了这个工作与双json_encoding的字符串在php基于这个php 's json_encode不转义所有JSON控制字符像这样,但想知道是否有一些其他的方法。
$jsonarr = array("haha" => array("hihi'hih","hu'"huh"));
print json_encode(json_encode($jsonarr));
如果你从AJAX得到这个,它不会发生,所以我相信你是使用PHP生成JS代码,像这样:
var json = '<?php echo $jsonarr; ?>';
var obj = JSON.parse(json);
这不起作用,因为,正如您所注意到的,打印时$jsonarr
将没有必要数量的反斜杠。JSON中的'"
需要在JS字符串字面值中为''"
,以便被理解为'"
。
var obj = <?php echo $jsonarr; ?>;
完成了!