我正在尝试从本地json文件中获取数据,这样我就可以操作视图中的数据(如果你选择UnitOne,那么你可以选择的唯一角色是' role1&#39 ;,' role2',#3; role3'等。)
所以我构建一个示例应用程序只是为了演示整个交易。
基本上我收到此错误消息:
错误:未捕获(在promise中):SyntaxError:意外的标记<在JSON中 在位置0语法错误:意外的标记<在JSON的0号位置 Response.Body.json中的JSON.parse()
这里是代码Link
答案 0 :(得分:0)
您的http调用未获取JSON文件,因为它不在http://localhost/data.json。该调用返回一些HTML,这就是你得到错误的原因。
您可以使用TypeScript导入JSON文件,而不是尝试通过HTTP请求它。
"POST http://localhost/queue 404 (Not Found)"
编写代码可能有更漂亮的方法,但我会把它留给你。 :)
如果您绝对必须通过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