/ / json_code - комбінація JSON.parse (), працює добре в Firefox, але не в інших браузерах - php, javascript, json

комбінація json_code - JSON.parse (), добре працює в Firefox, але не в інших браузерах - php, javascript, json

Я використовую комбінацію json_encode (PHP)і JSON.parser (Javascript від json.org) для передачі об'єкту 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>

Помилка з повідомленням про помилку "String literal not ended".

Дякую

Відповіді:

2 для відповіді № 1

Залиште котирування і має працювати:

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

Строка, яку повернув json_encode вже є дійсним виразом JavaScript і, таким чином, не потребує подальших декларацій.