我有JSON结果:
[ { "_id" : { "$oid" : "5237d438e4b07666dcca4896"} ,
"username" : "user" , "password" : "asdf"} ]
从GET请求返回。我试图解码这个结果,我似乎无法访问用户名或密码密钥。这就是我试过的:
$obj = json_decode($result[0]);
echo $obj->username;
然而,它似乎每次都返回整个结果(数组)。
答案 0 :(得分:1)
尝试使用它:
$json = json_decode($result);
echo $json[0]->username;
完整示例:
<?php
header('Content-Type: text/plain; charset=utf-8');
$result = '[ { "_id" : { "$oid" : "5237d438e4b07666dcca4896"} ,
"username" : "user" , "password" : "asdf"} ]';
$json = json_decode($result);
echo $json[0]->username;
?>
结果:
user
答案 1 :(得分:1)
$result = '[ { "_id" : { "$oid" : "5237d438e4b07666dcca4896"} ,
"username" : "user" , "password" : "asdf"} ]';
$obj = json_decode($result);
var_dump($obj);
/**
* Array containg object. So now $obj is just an array
*
array (size=1)
0 =>
object(stdClass)[1]
public '_id' =>
object(stdClass)[2]
public '$oid' => string '5237d438e4b07666dcca4896' (length=24)
public 'username' => string 'user' (length=4)
public 'password' => string 'asdf' (length=4)
*
*
* Key 0 contains object properties _id; username; password
*
*/
echo $obj[0]->username; // user
答案 2 :(得分:1)
如果你向json_decode添加第二个参数boolan true 像
$obj = json_decode($result[0], true);
然后你将获得关联数组而不是对象。
可以通过
等键访问值echo $obj['username'];
答案 3 :(得分:0)
是的,你是对的json_decode函数返回一个数组。您需要从该数组中获取值。在上述情况下,您需要获取如下的用户名:
echo $json_encode[0]->username;;
取决于你的json。