我有 JSON 结果:
[ { "_id" : { "$oid" : "5237d438e4b07666dcca4896"} ,
"username" : "user" , "password" : "asdf"} ]
这是从 GET 请求返回的。我正在尝试解码此结果,我似乎无法访问用户名或密码密钥。这是我尝试过的:
$obj = json_decode($result[0]);
echo $obj->username;
然而,它似乎每次都返回整个结果(数组)。
如果您向 json_decode 添加第二个参数 boolan true ,例如
$obj = json_decode($result[0], true);
然后你会得到关联数组而不是对象。
并且可以通过键访问值,例如
echo $obj['username'];
尝试使用这个:
$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
$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
是的,你是对的 json_decode 函数返回一个数组。您需要从该数组中获取值。在上述情况下,您需要获取如下用户名:
echo $json_encode[0]->username;;
取决于你的json。