Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将Json转换为数组变量(对象)_Php_Arrays_Json - Fatal编程技术网

Php 将Json转换为数组变量(对象)

Php 将Json转换为数组变量(对象),php,arrays,json,Php,Arrays,Json,我正在尝试将json转换为变量,而不使用json\u decode 例如: $json = '{ "username": "username", "password": "pass", "movies": [ { "a": "xx", "b": "xx", "c": "xx", "d": 1, "e": 2 } ]

我正在尝试将json转换为变量,而不使用
json\u 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' => Array(
    Array(
        "a" => "xx",
        "b" => "xx",
       ...
    )
),

它应该是
'movies'=>数组((对象)数组(
而不是
'movies'=>(对象)数组(

范例

echo "<pre>";
 $post = array(
           'username' => 'username',
           'passsword' => 'pass',
           'movies' => array((object) array(
             'a' => 'xx',
             'b' => 'xx',
             "c" => 1,
             "d" => 2
           ))
    );
echo json_encode($post)
echo”“;
$post=数组(
“用户名”=>“用户名”,
“通行证”=>“通行证”,
“电影”=>数组((对象)数组(
'a'=>'xx',
“b”=>“xx”,
“c”=>1,
“d”=>2
))
);
echo json_编码($post)

“电影”是一组对象:

$var = json_encode($post['movies'],true);
print_r(json_decode($var,true));

但是为什么不使用json_decode()?

据我所知,您正在接收一个对象。因此,让我们将其转换为json,然后将该json对象转换为关联数组


echo json_encode($post['movies'],true);
为什么不使用
json_decode
这是一个完美的解决方案。因为我得到了json API(上面的示例)。所以我需要添加用户名、密码等值。那又怎么样?
array=json_decode($json,true)$array['newKey']=“newValue”;$newJson=json编码($array);
因为我得到了JSON API(上面的示例)。所以我需要在JSON中添加用户名、密码等值?你建议我应该怎么做?
JSON\u解码它,修改数组,然后
JSON\u编码
结果。
$var = json_encode($post['movies'],true);
print_r(json_decode($var,true));