我正在尝试从请求返回的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"}]}"}
答案 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'] );
}