如何访问JSON对象的动态属性? (Node.js的)

时间:2016-06-12 17:49:32

标签: json node.js api parsing

我确定已经多次提出并回答了类似的问题,但我想我没有正确写出这个问题,因为我还没有找到任何对我有用的回复。

我正在使用Node发送API请求,并将数据返回到我的角度应用程序中:

app.get('/personInfo/:personName', function(req,res){

    Module.Person.getByName(req.params.personName)
    .then(function (person) {
        res.json(person);
    });
});

该应用程序通过以下脚本包含响应:

$scope.submit = function(){
    $http.get('/personInfo/' + $scope.person.name).success(function(response){
        console.log(response);
    });
};

($ scope.person链接到我的.html文件的某些字段,似乎工作正常)

我得到了回来(假设我通过$ scope.person.name传递了johnny)

johnny:Object
__proto__:Object

第一个对象包含我想要的数据......因此我无法直接访问其属性。

我无法对此执行简单的response.id, response.name, response.profileIconId等等...我必须像这样访问它:

response.johnny.property ......显然......

我做错了什么?我可以使用某种形式的格式化或解析,无论是在服务器级别还是客户端级别,这将允许我直接访问对象的属性而无需指定动态父级?

1 个答案:

答案 0 :(得分:0)

好的,这似乎有用......

我通过测试找到了person.x(x = personName param)按照我想要的方式返回对象 - 所以我每次都需要做person.personName,所以既然我不知道知道名字,只需传入一个与参数匹配的未知属性,它就可以了!

res.json(人[req.params.personName]);

返回: Object {id: 19897772, name: "Johnny", profile: 937, rank: 12, revisionDate: 1463522178000}

我现在可以做response.id,name,profile etc. ...