[英]JSON parse and single quote
我有PHP传递的JSON数据,我需要用Javascript解析它。
item = JSON.parse('<?=json_encode($item_localized);?>');
麻烦了 我在$ item_localized中有一个包含单引号的字符串。 Jsonlint说它是有效的json。 因为我使用'<?=json_encode($item_localized);?>'
-我收到消息Uncaught SyntaxError:意外的标识符。 我不能使用双引号。 我尝试用\\'代替单引号,但是它不起作用。
json_encode
将生成JSON文本。
JSON.parse
需要接收一个包含JSON文本的字符串 。
您确实需要用引号将字符串引起来,但是不能简单地在字符串周围加上'
,因为这样不会使字符串中任何具有特殊含义的字符转义(例如其他'
字符)。
如果将字符串放入json_encode
,则会得到一个JSON文本,该文本由另一个JSON文本的字符串表示形式组成。 由于JSON是JS子对象,因此该字符串将是JS安全的:
item = JSON.parse(<?php echo json_encode(json_encode($item_localized)); ?>);
但是,这很愚蠢。 由于JSON是JavaScript的子集,因此您可以直接将其用作JavaScript文字。
item = <?php echo json_encode($item_localized); ?>;
那么item = <?=json_encode($item_localized);?>;
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.