AngularJS $ http对本地JSON文件的GET请求返回SyntaxError:Unexpected token]

时间:2016-04-26 21:05:39

标签: javascript angularjs json http get

我正在尝试向位于项目目录中的JSON文件发出简单的GET请求,并继续收到以下内容: SyntaxError:意外的令牌]

我没有看到我的JavaScript或JSON的任何语法问题。 JSON的路径是正确的,给我304响应。我的JavaScript和JSON非常简单:

JavaScript的:

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

// controllers
app.controller('myController', function($scope, $http){

  $scope.data = null;

  $http.get('data.json').success(function(data){

    $scope.data = data;
    console.log($scope.data);
  });
});

JSON:

{
 "data": [
  {
    "title": "Test 1",
    "description": "Fusce vulputate eleifend sapien."
  },
  {
    "title": "Test 2",
    "description": "Vivamus laoreet."
  },
  {
    "title": "Test 3",
    "description": "Quisque ut nisi."
  },
 ]
}

是什么阻止我从JSON文件中检索数据?

2 个答案:

答案 0 :(得分:3)

您的JSON末尾有一个额外的逗号:

{
 "data": [
  {
    "title": "Test 1",
    "description": "Fusce vulputate eleifend sapien."
  },
  {
    "title": "Test 2",
    "description": "Vivamus laoreet."
  },
  {
    "title": "Test 3",
    "description": "Quisque ut nisi."
  }, <<<< HERE
 ]
}

答案 1 :(得分:2)

通常,在JavaScript中,向数组/对象添加额外的逗号不会导致任何问题(例如,在代码编辑器中),即使这不是最佳实践。

但是,由于您在请求中使用此JSON,因此JSON语法必须正确。

删除包含对象的数组末尾的逗号。

{
 "data": [
  {
    "title": "Test 1",
    "description": "Fusce vulputate eleifend sapien."
  },
  {
    "title": "Test 2",
    "description": "Vivamus laoreet."
  },
  {
    "title": "Test 3",
    "description": "Quisque ut nisi."
  }
 ]
}