从文字数组

时间:2017-06-14 16:44:52

标签: javascript angularjs arrays

尝试从文字数组中提取数据,但我做错了,因为它不起作用。

$http.get('/api/user/' + $routeParams.id)
      .then(function (res) {

       var user = res.data.message;
       console.log(user)

       }, function (err) {
             console.log(err);
       })

上面的代码给出了如下数组:

[{"id": "1", "name": "user1"}]

我试图获取如下数据,但它不起作用

vm.user = user.id;
//or
vm.user = user[0].id;

当我做的时候

console.log(user[0]);

我得到“[”作为输出

我做错了什么?我需要使用循环吗?

2 个答案:

答案 0 :(得分:1)

如果[{"id": "1", "name": "user1"}](来自您的代码)的控制台输出为您提供了" [",那么您没有数组...您有一个字符串。字符串可以通过索引访问,所以:

"TEST"[0] == "T", "TEST"[1] == "E" - 等等

如果是这种情况,那么你需要将你的字符串解析成一个json对象数组 - 你可以使用JSON.parse ala:

var userArray = JSON.parse(user);

可能是您的API返回的是字符串而不是JSON' ified对象,但根据您发布的详细信息很难知道。

答案 1 :(得分:0)

变化 var user = res.data.message;

var user = res.data;

然后 的console.log(用户[0]);

打印出来。

另请注意,vm.user和user是两个不同的变量,请确保您打印的是将数据绑定到的变量。