簡體   English   中英

json_ encoding-JSON.parse()組合,在Firefox中運行良好,但在其他瀏覽器中失敗

[英]json_ encode - JSON.parse() combination, work well in Firefox but fail in other browsers

我正在使用json_encode(PHP)和JSON.parser(來自json.org的Javascript)的組合來將JSON對象從PHP傳遞到Javascript,JSON對象可能具有雙引號和雙引號,所以我正在使用addslashes()函數在PHP中。 這種組合在Firefox中效果很好,但在其他瀏覽器(如Safari,Chrome或Internet Explorer)中效果不佳。 這是代碼:

<?php

   $json =array('n' => count($arrayEx), 'items' => array());

   foreach($arrayEx as $item)
   {
      $json['items'][]=array( 'property1' => addslashes($item['property1']),
                     'property2' =>addslashes($item['property2'])
                            );

   }    

   $json_string = json_encode($json);

?>

<script>    
   var json_string= '<? echo $json_string; ?>'; 
   var json_object = JSON.parse(json_string);   //Fail in this line
</script>

失敗,錯誤消息“字符串文字未結束”。

謝謝

忽略引號,它應該可以工作:

var json_string = <?php echo $json_string; ?>;

json_encode返回的字符串已經是有效的JavaScript表達式,因此不需要任何進一步的聲明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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