无法使用Angular从本地json获取数据

时间:2018-04-23 12:43:22

标签: json angular http models

我正在尝试从本地json文件中获取数据,这样我就可以操作视图中的数据(如果你选择UnitOne,那么你可以选择的唯一角色是' role1&#39 ;,' role2',#3; role3'等。)
所以我构建一个示例应用程序只是为了演示整个交易。 基本上我收到此错误消息:

  

错误:未捕获(在promise中):SyntaxError:意外的标记<在JSON中   在位置0语法错误:意外的标记<在JSON的0号位置   Response.Body.json中的JSON.parse()

这里是代码Link

2 个答案:

答案 0 :(得分:0)

您的http调用未获取JSON文件,因为它不在http://localhost/data.json。该调用返回一些HTML,这就是你得到错误的原因。

您可以使用TypeScript导入JSON文件,而不是尝试通过HTTP请求它。

"POST http://localhost/queue 404 (Not Found)"

这是working version

编写代码可能有更漂亮的方法,但我会把它留给你。 :)

如果您绝对必须通过HTTP请求JSON,那么我建议您将其放在资源目录中,然后拨打import { Component, OnInit } from '@angular/core'; import 'rxjs/add/operator/toPromise'; import { Http } from '@angular/http'; import { RootObject, Parameter, Infos, Info, ValidValues, Condition} from './data.model'; import json from './data.json' @Component({ selector: 'my-app', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent implements OnInit { data: RootObject; print: string = ''; constructor(private http: Http) { } ngOnInit() { this.data = json as RootObject; this.print = this.data.parameters[1].keyParameterName; } } 。那可能有用。要么是这样,要么使用CDN /外部URL来请求它。但请记住,您需要在该服务器上启用CORS,否则您的浏览器将阻止您的请求。

答案 1 :(得分:0)

这里唯一的问题是你的json文件不在assets文件夹中。

您应该将该文件移动到assets文件夹,然后尝试使用相同的代码,它会起作用。

  

将您的文件保存在assets的根目录中,因为您正在尝试获取   ./data.json

     

如果您移至asdf中的部分文件夹名称assets,那么您   需要像./asdf/data.json

一样进行更改