如何从 Angular 4 中的 JSON 文件中获取 json 数据

Posted

技术标签:

【中文标题】如何从 Angular 4 中的 JSON 文件中获取 json 数据【英文标题】:How to fetch json data from JSON file in angular 4 【发布时间】:2018-06-19 18:56:06 【问题描述】:

我正在做一个项目,我希望在其中拥有 JSON 文件资产文件夹。我创建服务和组件。 1-资产文件夹中的我的 JSON 文件

data.json

[ 
 
    "Date" : "10/09/2017",
    "ID" : "1",
    "Color" : "Orange",
  , 
    "Date" : "10/11/2017",
    "ID" : "2",
    "Color" : "Green",
  
]

我为读取数据的服务创建了一个服务,将其存储在 JSON 格式的数据变量中。将 JSON 文件保存在 assets 文件夹中很重要,因为这样很容易访问它。

data.service.ts

import  Injectable  from '@angular/core';
import  Http  from '@angular/http';

@Injectable()
export class DataService 

  constructor(private http: Http)    

  fetchData() 
    return this.http.get('assets/data/data.json').map(
      (Response)=>Response.json()
    ).subscribe(
      (data) => 
        console.log(data);
      

    );
  


上述服务工作正常,并在控制台中显示 JSON 数据。 现在的

data.component.ts

import  Component, OnInit  from '@angular/core';
import  DataService  from '../../../services/data.service';
import  DataTablesModule  from 'angular-datatables';

@Component(
  selector: 'app-data',
  templateUrl: './data.component.html',
  styleUrls: ['./data.component.css']
)
export class DataComponent implements OnInit 

  constructor(private DataResponse: DataService )  

  ngOnInit() 
    this.DataResponse.fetchData();
  


它在控制台中显示 JSON 数据,但如何在 HTML 中显示数据。我尝试了不同的方法,但对我没有任何效果。

如果我找到任何解决方案,我会更新问题。如果有人已经知道如何解决这个问题,我会很高兴。

【问题讨论】:

您尝试过什么以 HTML 格式显示数据?什么不起作用? 【参考方案1】:

不是在服务中订阅,而是在组件内部订阅。在服务中返回 observable。

 fetchData() 
    return this.http.get('assets/data/data.json').map(
      (Response)=>Response.json()
    )
  

现在,在组件内部订阅并将 data 变量绑定到 HTML

export class DataComponent implements OnInit 
  data:any;

  constructor(private DataResponse: DataService )  

  ngOnInit() 
    this.DataResponse.fetchData().subscribe(
      (data) => 
       this.data = data;
      

     );
    ;
  


【讨论】:

@ziaullahzia 没问题。如果这有帮助,请务必检查答案:D【参考方案2】:

您提供的 JSON 文件是无效的 JSON 格式。与 javascript 数组和对象不同,最后一项中不能有尾随逗号。

应该是:

[ 
 
    "Date" : "10/09/2017",
    "ID" : "1",
    "Color" : "Orange"
  , 
    "Date" : "10/11/2017",
    "ID" : "2",
    "Color" : "Green"
  
]

【讨论】:

以上是关于如何从 Angular 4 中的 JSON 文件中获取 json 数据的主要内容,如果未能解决你的问题,请参考以下文章

如何将从服务接收到的 json 数据传递到 Angular 4 的角材料组件中的数组

如何从 Angular 2 中的 JSON 对象中读取想要的数据?

无法使用 Angular 服务从 Angular 应用程序中的 JSON 文件访问数据

Angular 4:如何访问本地 json?

如何从 Angular2(Typescript)中的 Json 数组中获取值的总和

如何读取 Angular 模块中的 json 配置文件?