0

を使用せずにjsonを変数に変換しようとしていますjson_decode

例えば:

$json = '{
    "username": "username",
    "password": "pass",
    "movies": [
        {
            "a": "xx",
            "b": "xx",
            "c": "xx",
            "d": 1,
            "e": 2
        }
    ]
}';

私はこれを配列に変換しようとしました:

    $post = array(
           'username' => 'username',
           'passsword' => 'pass',
           'movies' => (object) array(
             'a' => 'xx',
             'b' => 'xx',
             "c" => 1,
             "d" => 2
           )
    );
echo json_encode($post);

ご覧のとおり、moviesブロックと一致していません。映画はオブジェクトです。私が間違っていることは何ですか?

4

4 に答える 4

1

「movies」はオブジェクトの配列です。

$post = array(
    'username' => 'username',
    'passsword' => 'pass',
    'movies' => array(
        (object) array(
            'a' => 'xx',
            'b' => 'xx',
            'c' => 1,
            'd' => 2.
        )
    )
);

しかし、なぜjson_decode()を使用したくないのですか?

于 2012-09-24T23:29:26.187 に答える
0

なぜあなたが使うべき機能を特に使っていないのかはさておき...

moviesはオブジェクトの配列であり、オブジェクトは実際には単なる連想配列です。したがって、次のようになります。

'movies' => Array(
    Array(
        "a" => "xx",
        "b" => "xx",
       ...
    )
),
于 2012-09-24T23:28:47.380 に答える
0

すべきで'movies' => array((object) array( はない 'movies' => (object) array(

echo "<pre>";
 $post = array(
           'username' => 'username',
           'passsword' => 'pass',
           'movies' => array((object) array(
             'a' => 'xx',
             'b' => 'xx',
             "c" => 1,
             "d" => 2
           ))
    );
echo json_encode($post)
于 2012-09-24T23:28:47.817 に答える
0

私の理解では、あなたは物を受け取っているということです。それでは、それをjsonに変換してから、そのjsonオブジェクトを連想配列に変換しましょう。

$var = json_encode($post['movies'],true);
print_r(json_decode($var,true));
于 2012-09-24T23:37:00.860 に答える