json_decode
PHPデータ構造を返します。それをJavaScriptデータ構造にシリアル化する場合は、それをパススルーする必要がありますjson_encode
(実際にecho
はそれが返す文字列)。
HTMLドキュメントjson_encode
の要素に安全に挿入できるJavaScriptデータ構造を出力することに注意してください。<script>
すべてのJSONでこれを行うのが安全というわけではありません(PHPはエスケープシーケンスを追加し、プレーンな文字列、数値、null値などを変換します(これ自体は正当なJSONではありません)。
arr
すぐに何か他のものをに割り当てる場合は、新しい配列を作成して割り当てることにも意味がないことに注意してくださいarr
。
'$json_object'
また、文字で始まり$
、変数の名前が続く文字列が表示されることにも注意してください。PHPの単一引用符で囲まれた文字列は補間されません。
var arr;
arr = <?php echo json_encode(json_decode($json_object,TRUE)); ?>;
このJSONにも注意してください。
{"product_id":"62","product_quantity":"65"}
PHP連想配列またはJavaScriptオブジェクト(配列ではありません)に変換されます。
したがって、このPHPを考えると:
<?php
$json_object = '{"product_id":"62","product_quantity":"65"}';
?>
<script>
var arr;
arr = <?php echo json_encode(json_decode($json_object,TRUE)); ?>;
alert(arr.product_id);
</script>
次の出力が得られます。
<script>
var arr;
arr = {"product_id":"62","product_quantity":"65"};
alert(arr.product_id);
</script>
実行時に62にアラートを出します。