尝试输出从服务器返回为json的数据时显示未定义的值

Kir*_*lee 2 javascript php json mongodb yii2

我是Yii2框架和PHP的新手.我使用Mongo DB作为后端数据库.我从集合中获取文档并从控制器返回数据作为Json.返回的数据如下所示.

{
    "55b08c383e1a36233fdbdc06": { 
        "_id": { "$id": "55b08c383e1a36233fdbdc06" }, 
        "address": [ "abcdgt", "zxcv" ], 
        "age": "23", 
        "email": [ "qwert@gmail.com","abcd@mail.com" ], 
        "location": "kollam", 
        "name": "ajiths",
        "phoneno": [ "9522585456", "7875642256" ] ,
        "sex": "male" 
     }
}
Run Code Online (Sandbox Code Playgroud)

但是在尝试提醒result.name时,我收到了"Undefined" 在Javascript代码中.前端的代码如下所示.

function loadClient(id){
         url = "<?=  Yii::getAlias('@serverpathweb')?>/client/showclient?id="+id;
           $.ajax({
          url: url ,
          method: "GET",
           success: function(result){
             alert(result.name);

                 }
             });
    }
Run Code Online (Sandbox Code Playgroud)

控制器端的代码如下所示.

public function actionShowclient($id) {

       $clientdetail = Yii::$app->mongodb->getCollection('client');
       $result = $clientdetail->find(["_id" =>$id]);
       Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
       return $result;
    }
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我如何获得值result.name.

Nag*_*ika 5

你获得带有id的JSON结果,key所以这样访问你的JSON数据首先得到你的JSON的密钥,使用Object.keys 下一个使用密钥打印你需要的值

var id=Object.keys(result)[0]; //it will print your JSON key i.e. "55b08c383e1a36233fdbdc06"

alert(result[id]['name']); // it will print the name
Run Code Online (Sandbox Code Playgroud)

请注意,如果您收到多个用户详细信息,请告诉我们