Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS解析JSON数组对象意外标记:_Javascript_Json_Angularjs - Fatal编程技术网

Javascript AngularJS解析JSON数组对象意外标记:

Javascript AngularJS解析JSON数组对象意外标记:,javascript,json,angularjs,Javascript,Json,Angularjs,我已经尝试通过StackOverflow搜索这个问题,但找不到适合我的解决方案。我用的是AngularJS。我有一个简单的控制器,它调用http服务并读取响应数据。在这个特定的例子中,我有一个JSON输出,其中包含一个我无法读取的对象数组 以下是JSON输出: { "results": [{ "id": "1", "download_url": "", "uploader": { "id": "114899" }, "uploaded":

我已经尝试通过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>

此错误的问题行是
“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;
}

尝试使用ng repeat=“uitems.results中的item”。因为元素results是json响应的数组,您可以在其上使用ng-repeat@J-D、 恐怕结果没有变化。@ngLover,还没有解决。
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;
}