0

必要なデータをjsonオブジェクトにエンコードしましたが、jsonオブジェクトをjavscript配列にデコードしたいのですが、jsonでエンコードされたオブジェクトは次のとおりです。

{"product_id":"62","product_quantity":"65"}

ただし、このjsonをJavaスクリプトで使用し、Javaスクリプト配列で使用できるようにしたい

もしそうなら:

var arr = new Array()
arr = <?php json_decode('$json_object',TRUE); ?>;

ただし、ページのソースを確認すると、null、つまり arr = 配列に変換された json オブジェクトを Java スクリプト配列に割り当てるにはどうすればよいですか? さらに、java スクリプト配列から json オブジェクトにアクセスする方法は?

4

3 に答える 3

6

json_decodePHPデータ構造を返します。それを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にアラートを出します。

于 2012-08-17T12:02:55.773 に答える
0

JSONオブジェクトをjavascript配列にプッシュし、配列を反復処理して、必要な適切なフィールドを選択することができます。修正しました。

    var json = {"product_id":"62","product_quantity":"65"}; 
    var array = new Array();
    array.push(json);   
    for(var i = 0; i < array.length; i++){
       console.log(array[i].product_id)
    }
于 2012-08-17T12:10:59.777 に答える
0

さて、始めましょう:

PHPで生成されたjson文字列は、Javascriptでオブジェクトとして使用できます。変数を最初の配列として宣言すると、競合する可能性があります。

とにかくこれはうまくいくはずです:

<?php 
$error_fields_structure = array(
     'product_id' => 4531
    ,'main_product_quantity' => 2
);

$json_object = json_encode($error_fields_structure);
?>

<html>
    <head>
        <script>
            var jsonstring = <?php echo (isset($json_object) ? $json_object : 'nothing here'); ?>

            for( var i in jsonstring ){
                alert( i +' == ' +jsonstring[i] );
            }
        </script>
    </head>

    <body>

    </body>
</html>
于 2012-08-17T12:11:24.717 に答える