JSON解析,它有一个项目数组

时间:2016-10-07 03:07:09

标签: javascript angularjs

我有一个JSON响应,如下所示

{"items":["1","2","3"],"code":"ok"}

var simpleArry = [] ;
$http.post(url, "", "")
            .then(function (response) {
                console.log(response.data.items);
                //$scope.items= response.data.items;
                //instead of the above line 
                simpleArry = resp.data.items;
            });

我需要再次迭代数组以从另一个调用中获取一些数据。 需要它在列表/数组中它应该是什么样的

var itmsArry = ["1","2","3"]

我试过这样的事情

var simpleArry = [] ;
simpleArry = resp.data.items;

但它总是空着的。它出了什么问题

我的问题没有重复。它关于json数组,与async调用没什么关系

4 个答案:

答案 0 :(得分:0)

它应该与您展示的代码一起使用,可能是您在响应之外进行分配,

app.controller('myController', function($scope, myService) {
  myService.getJSON().then(function(data){
            $scope.myData =data;
            console.log(data);
 });

});
app.service('myService', function($http) {
  this.getJSON = function() {
    return $http.get('test.json').then(function(data) {
      return data.data.items;
    });
  };
});

Demo

答案 1 :(得分:0)

你应该在代码

下面试试这个
  

javascript代码

var str='{"items":["1","2","3"],"code":"ok"}';
var data=JSON.parse(str);
console.log(data.items);
  

输出   enter image description here

答案 2 :(得分:0)

使用

try{
    var data = JSON.parse(response)
}catch{

}    

data.item包含数组。

答案 3 :(得分:0)

这就是我解决的问题。

var testArry = [];

for (var r = 0; r < response.data.items.length ; r++){
  testArry.push(response.data.items[r]);                  
}