使用javascript从json对象获取值

时间:2018-06-01 13:37:21

标签: javascript json

我正在尝试从请求返回的json对象中获取特定值。但我正在使用的sintax不起作用。返回的值为undefined。如何在json对象中获取键name的值?

响应存储在costumer变量中。

$http.get('url').
   then(function successCallback(response){
        var costumers = response;
        console.log(costumers['data']['costumers']['name']);
    }, function errorCallback(response){

});

Json对象

{data: "{"costumers":[{"id":"1","name":"John"},{"id":"2","name":"Mary"}]}"}

2 个答案:

答案 0 :(得分:1)

$http.get('url'). then(function successCallback(response){ var costumers = response; console.log(costumers['data']['costumers'][0]['name']); }, function errorCallback(response){ }); 是一个数组,用于访问您需要将索引写入其后方括号中的数组元素。在这种情况下,如果要访问数组的第一个元素(索引0),可以这样做:

$http.get('url').
then(function successCallback(response){
    var costumers = response;
    for(let customer of costumers['data']['costumers']) {
        console.log(customer['name']);
    }
}, function errorCallback(response){

});

或使用for循环记录所有客户:

{data: {costumers:[{id:"1",name:"John"},{id:"2",name:"Mary"}]}}

所有这些只有在对象在语法上正确时才有效,它应该如下所示:

tokio::timer::Delay

而不是您发布的对象。

答案 1 :(得分:0)

您的案例中的costumers是一个对象数组,因此您必须指定要定位的对象的索引以获取值,例如:

costumers['data']['costumers'][0]['name']
______________________________^^^

0索引将返回第一个对象:

{"id":"1","name":"John"}

您可以随时遍历costumers的所有对象,并且可以检查返回的对象是否具有'属性'你想要:

if( costumers['data']['costumers'][0].hasOwnProperty('name') ){
    console.log( costumers['data']['costumers'][0]['name'] );
}