json_ kodlamak - JSON.parse () kombinasyonu, iyi Firefox'ta çalışır ancak diğer tarayıcılarda başarısız

1 Cevap php

Ben json_encode kombinasyonunu (PHP) kullanıyorum ve JSON.parser (JavaScript json.org itibaren) Javascript PHP bir JSON nesnesi geçiş için, JSON nesne yüzden () işlevi addslashes kullanıyorum tırnak ve çift tırnak olabilir PHP. Bu kombinasyon Firefox'ta iyi çalışmaz ama Safari, Chrome veya Internet Explorer gibi diğer tarayıcılarda. Bu kodu:

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

Hata mesajı "Dize değişmezi sona erdi" ile başarısız.

Teşekkürler

1 Cevap

Tırnak dışarı bırakın ve çalışması gerekir:

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

json_encode zaten böylece geçerli bir JavaScript ifadesidir ve tarafından döndürülen dize başka bildirimleri gerekmez.