我有PHP传递的JSON数据,我需要在Javascript中解析它。
item = JSON.parse('<?=json_encode($item_localized);?>');
有些麻烦。我在$ item_localized中包含单引号的字符串。 Jsonlint说它有效json。因为我使用'<?=json_encode($item_localized);?>'
- 我收到消息Uncaught SyntaxError:Unexpected identifier。我不能使用双引号。我尝试用 \&#39; 替换单引号,但它无效。
答案 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)); ?>);
item = <?php echo json_encode($item_localized); ?>;
答案 1 :(得分:1)
item = <?=json_encode($item_localized);?>;
怎么样?