1

JSONの結果があります:

[ { "_id" : { "$oid" : "5237d438e4b07666dcca4896"} , 
    "username" : "user" , "password" : "asdf"} ]

これは GET リクエストから返されます。この結果をデコードしようとしていますが、ユーザー名またはパスワード キーにアクセスできないようです。これは私が試したものです:

$obj = json_decode($result[0]);
echo $obj->username;

ただし、毎回結果全体(配列)を返すようです。

4

4 に答える 4

2

次のように json_decode に 2 番目のパラメーター bolan true を追加すると、

$obj = json_decode($result[0], true);

次に、オブジェクトの代わりに連想配列を取得します。

次のようなキーを介して値にアクセスできます

echo $obj['username'];
于 2013-09-17T06:33:30.953 に答える
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
于 2013-09-17T06:14:52.220 に答える
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
于 2013-09-17T06:13:47.023 に答える
0

はい、そうです json_decode 関数は配列を返します。その配列から値を取得する必要があります。上記の場合、以下のようにユーザー名を取得する必要があります。

echo $json_encode[0]->username;;

あなたのjsonに依存します。

このリンクを参照できます:

于 2013-09-17T06:14:32.777 に答える