/ / json_ encode - Combinaison JSON.parse (), fonctionne bien dans Firefox mais échoue dans les autres navigateurs - php, javascript, json

json_ encode - Combinaison JSON.parse (), fonctionne bien dans Firefox mais échoue dans les autres navigateurs - php, javascript, json

J'utilise la combinaison de json_encode (PHP)et JSON.parser (Javascript de json.org) pour passer un objet JSON de PHP à Javascript, l’objet JSON peut avoir des guillemets et des guillemets doubles, donc j’utilise la fonction addlashes () en PHP. Cette combinaison fonctionne bien dans Firefox mais ne fonctionne pas. dans d'autres navigateurs comme Safari, Chrome ou Internet Explorer. C'est le code:

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

Échec avec le message d'erreur "Littéral chaîne non terminé".

Merci

Réponses:

2 pour la réponse № 1

Laissez les guillemets et cela devrait fonctionner:

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

La chaîne retournée par json_encode est déjà une expression JavaScript valide et n’a donc pas besoin de déclarations supplémentaires.