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

时间:2015-07-28 13:50:10

标签: 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" 
     }
}

但我得到的是“未定义的”#39;尝试在Javascript代码中提醒 result.name 时。前端的代码如下所示。

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

                 }
             });
    }

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

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;
    }

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

2 个答案:

答案 0 :(得分:5)

您获取ID为key的JSON结果,因此请访问此类JSON数据 首先使用Object.keys获取您的JSON密钥 接下来使用键打印您需要的值

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

alert(result[id]['name']); // it will print the name

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

答案 1 :(得分:0)

你的&#34;结果&#34; object可能是一个String,因为你不会告诉jQuery。尝试将选项dataType:json添加到您的请求中,如下所示:

$.ajax({ url: url, method: 'GET', dataType: 'json', etc...

编辑:看起来你的代码中还有一个简单的错误。您需要访问属性中的属性:

result[id].name