簡體   English   中英

JSON解析和單引號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM