JSON解析和单引号

时间:2014-03-21 11:42:31

标签: javascript php json

我有PHP传递的JSON数据,我需要在Javascript中解析它。

item = JSON.parse('<?=json_encode($item_localized);?>');
有些麻烦。我在$ item_localized中包含单引号的字符串。 Jsonlint说它有效json。因为我使用'<?=json_encode($item_localized);?>' - 我收到消息Uncaught SyntaxError:Unexpected identifier。我不能使用双引号。我尝试用 \&#39; 替换单引号,但它无效。

2 个答案:

答案 0 :(得分:2)

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); ?>;

答案 1 :(得分:1)

item = <?=json_encode($item_localized);?>;怎么样?