2016-04-26 89 views
0

我有以下JSON数据正在由angularJS接收。它是使用get请求从ArrayList中引入的。如何解析此JSON响应

0: Object 
     id:1 
     area: "State" 
     gender: "Both" 
     highestEd: 3608662 
     .... etc 

    1: Object 
     id:2 
     area: "State" 
     gender: "Both" 
     highestEd: 3608662 
     .... etc 

但是我不知道如何使用控制器或用户界面访问它。我希望能够将这些数据存储在Angular中,以便我可以使用这些信息创建图表。我知道的唯一方法就是通过查看firefox中的响应。

任何帮助/建议将不胜感激。

+0

你使用$ http获取数据吗?你从哪里得到数据?服务还是控制器?如果可能的话,请分享一些你已经尝试过的代码。 –

+0

是的,我在工厂通过http获取请求获取数据。我想在处理它之前将它存储在一个范围变量中。 在试图处理变量方面,我尝试了ng-repeats嵌套和不嵌套。我目前正在使用JSfiddle,它在这里解析,但不在我的代码中。 http://jsfiddle.net/RkykR/2493/ – user3456450

+0

你能分享你的工厂和控制器代码吗? –

回答

1
  1. 您的JSON数据格式不正确。使用JSON lint检查
  2. 使用$http.get('/get_url/')获得响应。 One sample example for this
  3. 一旦你有应答$scope.yourVariable使用ng-repeat遍历它
+0

这工作完美。我只是将控制器更改为与您链接的示例完全相同的控制器。万分感谢 – user3456450

+0

@ user3456450:它的美丽。请将此标记为帮助其他人的答案。 –

0

看看这个小提琴手here你可能会得到一些想法。

在您使用$ http从您的工厂调用API后,您将解析您所获得的数据。控制器需要调用API方法,然后将已解析的数据从工厂绑定到API。

myApp.factory("Data", function($q, $http) { 
    return { 
    getData: function() { 
     var deferred = $q.defer(); 
     /* --Actual API Call 
      $http.get("/url") 
     .then(function(response) { 
      deferred.resolve(response.data); 
     }) 
       */ 
       //Dummy Data 
     var data = m; 
     deferred.resolve(data); 
     return deferred.promise; 
    } 
    } 
}); 

控制器

function MyCtrl($scope, Data) { 
    Data.getData() 
    .then(function(items) { 
     $scope.bobs = items; 
     console.log($scope.bobs); 
    }) 
} 

更换出厂虚拟数据初始化到实际的API调用。