Php 将Json转换为数组变量(对象)
我正在尝试将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\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));