1

私はこのように見えるJSONエンコードされた配列を持っています(それは2d PHP文字列配列から来ました):

[
[
    "a1",
    "a2",
    "a3",
    "a4"
],
[
    "b1",
    "b2",
    "b3",
    "b4"
],
[
    "c1",
    "c2",
    "c3",
    "c4"
]
]

http://jsonlint.com/で検証されています

ここで、この配列をAjaxによって別のページに送信し、2DPHP配列に変換し直したいと思います。JSON配列を作成した後、次のことを行います(myJsonArrayは、Javascript配列にした後に配列に付けた名前です。:

$.ajax({
       type: "GET",
       url: "somewhere.php",
       data: {jsonArray : myJsonArray},
       dataType: "json",
       success: function(msg){
         alert( msg); 
       }

     });
 }

そして、somewhere.phpで私はします:

 $json_array = $_GET['jsonArray'];

 $myArray = json_decode($json_array,true);

しかし、結果をエコーすると、

[Object object]

PHP配列を再作成する方法がわかりません。

編集:myJsonArrayを作成する方法:

<?php
$array = json_encode($original_array);

echo "var myJsonArray = ". $array . ";\n";
?>

また、テストの目的で、アラートボックスで、成功したときにmyJsonArrayを出力し、実際に期待どおりに配列を出力したことも指摘しておきます。

4

2 に答える 2

2

「[オブジェクトオブジェクト]」は、オブジェクトを文字列として評価するJavaScriptです。

オプションの「true」をjson_decodeに渡すと、それが連想配列であることがわかります。しかし、本当に配列の配列が必要です。

JSON.stringifyを使用してログに出力する場合、外側の角かっこが「{..}」になることを除いて、正しいデータが得られると確信しています。

于 2012-12-02T18:43:51.267 に答える
-1

上記のようにjsonコンテンツをデコードするために以下のコードスニペットを実行しようとしましたが、正常に機能しています。

<?php
               $a=array(array("a1","a2","a3","a4"),array("b1","b2","b3","b4"),array("c1","c2","c3","c4"));
               $json_content=json_encode($a);
              $json_array=json_decode($json_content,true);
               echo '<pre>';
                print_r($json_array);
?>
于 2012-12-02T19:32:29.467 に答える