繁体   English   中英

AngularJS解析JSON数组对象意外令牌:

[英]AngularJS Parse JSON Array Objects Unexpected token :

我尝试搜索有关此问题的StackOverflow,但找不到适合我的解决方案。 我正在使用AngularJS。 我有一个简单的控制器,它调用http服务并读取响应数据。 在这种情况下,我有一个JSON输出,其中包含一个我无法读取的对象数组。

这是JSON输出:

{
  "results": [{
    "id": "1",
    "download_url": "",
    "uploader": {
      "id": "114899"
    },
    "uploaded": "1442599380",
    "streaming_url_timeout": 1446092554
  }, {
    "id": "2",
    "download_url": "",
    "uploader": {
      "id": "114899"
    },
    "uploaded": "1442599380",
    "streaming_url_timeout": 1446092554
  }]
}

我正在尝试访问“结果”中的项目。 这是我的服务,用于检索JSON数据:

this.getUData = function() {
  var deferred = $q.defer();

  $http.jsonp(API_URL + 'udata')
    .success(function(data) {
      deferred.resolve(data);
    })
    .error(function(data) {
      deferred.reject(data);
    });

  return deferred.promise;
}

然后这就是我从控制器调用此服务的方式:

myservices.getUData().then(function(data) {
   $scope.uitems = data.results;
});

模板:

<div class="item" href="#" ng-repeat="item in uitems">
  <h2>{{item.id}}</h2>
</div>

但是,当我尝试访问“结果”中的项目时,出现以下错误:

Uncaught SyntaxError: Unexpected token : 

此错误的相关行是"results":[

看起来在这种情况下,回调函数在PHP服务器上无法正常工作,因此我设法通过在$ http服务中使用“ GET”方法来逃脱,如下所示:

this.getUData = function() {
  var deferred = $q.defer();

$http({method: 'GET', url: API_URL + 'udata'})
    .success(function(data) {
      deferred.resolve(data);
    })
    .error(function(data) {
      deferred.reject(data);
    });

  return deferred.promise;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM