我正在尝试使用$ http.get在AngularJS中读取一个json文件,并在浏览器控制台中出现一些错误。
Plunker:http://plnkr.co/edit/SDRpu1MmrTPpgpdb6Kyk?p=preview
这是我的代码
使用Javascript: -
var jayApp = angular.module('jayApp', []);
jayApp.controller('jayController', function($scope, $http){
$scope.entities = {};
$http.get("test.json").success(
function(data, status, headers, config) {
$scope.entities = data;
}
);
})
HTML
<!DOCTYPE html>
<html>
<head>
<link data-require="bootstrap@3.3.5" data-semver="3.3.5" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" />
<link data-require="bootstrap@3.3.5" data-semver="3.3.5" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootswatch/3.3.5/cosmo/bootstrap.min.css" />
<link data-require="bootstrap@3.3.5" data-semver="3.3.5" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" />
<script data-require="jquery@1.11.3" data-semver="1.11.3" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script data-require="bootstrap@3.3.5" data-semver="3.3.5" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script data-require="angular.js@1.4.7" data-semver="1.4.7" src="https://code.angularjs.org/1.4.7/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-app='jayApp' ng-controller='jayController'>
<h1>Read Json from file </h1>
Data : {{entities}}
</body>
</html>
更新
错误
SyntaxError: Unexpected token '
at Object.parse (native)
at fromJson (https://code.angularjs.org/1.4.7/angular.js:1252:14)
at defaultHttpResponseTransform (https://code.angularjs.org/1.4.7/angular.js:9414:16)
at https://code.angularjs.org/1.4.7/angular.js:9505:12
at forEach (https://code.angularjs.org/1.4.7/angular.js:336:20)
at transformData (https://code.angularjs.org/1.4.7/angular.js:9504:3)
at transformResponse (https://code.angularjs.org/1.4.7/angular.js:10276:23)
at processQueue (https://code.angularjs.org/1.4.7/angular.js:14745:28)
at https://code.angularjs.org/1.4.7/angular.js:14761:27
at Scope.$eval (https://code.angularjs.org/1.4.7/angular.js:15989:28)(anonymous function) @ angular.js:12477(anonymous function) @ angular.js:9246processQueue @ angular.js:14753(anonymous function) @ angular.js:14761Scope.$eval @ angular.js:15989Scope.$digest @ angular.js:15800Scope.$apply @ angular.js:16097done @ angular.js:10546completeRequest @ angular.js:10744requestLoaded @ angular.js:10685
答案 0 :(得分:7)
你的掠夺者有两个问题。首先,JSON文件的路径错误,导致/
。删除修正该问题的前导JSON
。
根本问题是您的{
"name":"jay",
"city":"Tanjore"
}
无效。
应该是
{{1}}
你有单引号(')但需要使用double(“)。
答案 1 :(得分:2)
这是你的JSON的一个问题,你需要把文件的路径放在没有'/'
的情况下<强> JSON:强>
{
"name":"jay",
"city":"Tanjore"
}
<强> CODE:强>
$http.get("test.json").success(
function(data, status, headers, config) {
console.log(data);
$scope.entities = data;
}
);
以下是更新后的Plunker
答案 2 :(得分:1)
无效的JSON ......应该是:
{
"name":"jay",
"city":"Tanjore"
}
此外,在您的Plunk上,您正在拨打错误的地方(在test.json之前删除/。)
$ http.get(“test.json”)。success(...
答案 3 :(得分:1)
正如我在你的json文件中看到的,你有一些语法错误是你的第一个主要错误,所以解释器无法读取json数据。
答:我刚刚为你的**keys**
添加了双引号
B.我将你所有的json对象都包含在卷曲的brakets **{}**
您无法解析已经是json对象的文件,在对其进行字符串化时解析json文件。所以,我删除了解析词&#39;我就这样离开了:
$http.get("test.json").success(
function(data, status, headers, config) {
$scope.entities =data;
}
);
固定的plunker示例:http://plnkr.co/edit/G5Y62tQuJit3ZvjHbKQ8?p=preview