2016-12-26 73 views
-2

JSON:推值從JSON到數組

var res = 
     { 
      "response": { 
      "data": { 
       "profilesearchsnippet": [ 
       [ 
        { 
        "profileInfo": { 
         "firstname": "Sundar", 
         "lastname": "v", 
         "gender": "male", 
         "country": "Afghanistan", 
         "state": "Badakhshan", 
         "city": "Eshkashem", 
         "pincode": "", 
         "plancode": "T001", 
         "userid": 13 
        }, 
        "roleInfo": { 
         "defaultphotoid": 94 
        } 
        } 
       ], 
       [ 
        { 
        "profileInfo": { 
         "firstname": "ghg", 
         "lastname": "vbhvh", 
         "gender": "male", 
         "state": "Badakhshan", 
         "city": "Eshkashem", 
         "pincode": "454", 
         "plancode": "T001", 
         "userid": 22 
        }, 
        "roleInfo": { 
         "defaultphotoid": 171 
        } 
        } 
       ] 
       ] 
      } 
      } 
     } 

在上述JSON,我需要移動roleInfo.defaultphotoidvar image

JS:

$scope.setimage = res.response.data.profilesearchsnippet[0]; 
    for (var i = 0; i++; i<setimage.length; i++){ 
    var image = []; 
    image .push(setimage[i].roleinfo.defaultphotoid); 
    } 

我分配的一個變量命名setimage和從那裏我試圖推動另一個數組圖像中的所有defaultphotoid的值來獲取所有roleinfos的圖像,但我只能獲取第一個值。

回答

1

這是因爲var image = []位於for循環內部。它會在每個週期後重新初始化。你需要把它放在循環外

$scope.setimage = res.response.data.profilesearchsnippet[0]; 
var image = []; 
for (var i = 0; i<$scope.setimage.length; i++){ 
    image.push($scope.setimage[i].roleinfo.defaultphotoid); 
} 
1

你可以使用angular.foreach inorder迭代元素並設置到變量中。

var log = []; 
angular.forEach(res.response.data.profilesearchsnippet[0], function(value, key) { 
    this.push(setimage[i].roleinfo.defaultphotoid); 
}, log); 

​​

0

試試這個:

$scope.setimage = res.response.data.profilesearchsnippet; 
var images = []; 

for (var i = 0; i<$scope.setimage.length; i++){ 
    image.push($scope.setimage[i][0].roleinfo.defaultphotoid); 
} 

會工作。