2015-04-01 139 views
0

我試圖從嵌套的JSON對象獲取URL,但是在獲取數據時遇到了問題。我不確定如何從深層嵌套的JSON對象中獲取數據。使用角度獲取嵌套的JSON對象的數據GET

app.controller('mainCtrl', function($scope, $http) { 


$http.get("https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20json%20where%20url%3D'www.whitehouse.gov%2Ffacts%2Fjson%2Fall%2Fcollege%2520affordability'&format=json&diagnostics=true").then(function(responce) { 
     $scope.status = responce; 
     $scope.sortData = responce.data.query.results.json.json.url; 
     console.log(responce); 
     console.log($scope.sortData); 
    }); 

}); 

我可以控制檯登錄對象,但我不知道如何從深度嵌套的對象獲取URL。這裏是控制檯記錄對象的JSFiddle。謝謝您的幫助。

https://jsfiddle.net/39pwve2x/19/

回答

0

更新撥弄:https://jsfiddle.net/39pwve2x/23/

在數據中,URL是一個重複數組對象(最後一個 「JSON」 節點)的一部分。該URL是數組中每個「json」的屬性。如果你需要把所有的URL的,合格的陣列到您的視圖和NG-重複了它:

<body ng-app="javascriptTest"> 
    <div ng-controller="mainCtrl"> 
     <div ng-repeat="item in sortData"> 
      {{item.url}} 
     </div> 
    </div> 
</body> 

...和控制器......

var app = angular.module('javascriptTest', []); 

app.controller('mainCtrl', function($scope, $http) { 
    $http.get("https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20json%20where%20url%3D'www.whitehouse.gov%2Ffacts%2Fjson%2Fall%2Fcollege%2520affordability'&format=json&diagnostics=true").then(function(responce) { 
     $scope.sortData = responce.data.query.results.json.json; 
    }); 
}); 

你也可以得到通過指定一個索引來指定一個URL。例如,如果你只關心由數據返回的第一個網址,你可以這樣做:

$scope.firstUrl = responce.data.query.results.json.json[0].url; 
0

簡答

responce.data.query.results.json.json[0].url; 

長的答案

responce.data.query。 results.json.json是一個對象數組,每個對象由索引標識,您需要提供您想要訪問的索引。

你也可以使用一個循環來獲取數組

var data = responce.data.query.results.json.json  
for (var i = 0; i < data.length; i++) { 
    console.log(data[i].url); 
} 

https://jsfiddle.net/39pwve2x/22/

中的所有對象