2017-12-06 13 views

答えて

0

あなたはそれは簡単ですHTTPリクエスト

getJsonData(){ 
    let jsonUrl = 'Your json file path'; 
    return this.http.get(jsonUrl) 
     .map((response: Response) => { 
     const data = response.json(); 
     return data; }); 
} 
+0

httpを使用している場合、レスポンを「マップ」して、response.jsonを@bipinのように使用する必要があります。patelが表示されます。新しいhttpClientを使用する場合は、response.jsonを使用しないでください。あなたはすでに直接オブジェクトを持っています – Eliseo

+0

ありがとうございました –

+0

私の答えにちょうどダニよりあなたのために働いている場合 –

0

を使用してJSONデータを読み取ることができます。コンポーネント内で直接行うことも、サービスを使用することもできます。アプリケーションのロジックを分離するサービスを作成する方が良いでしょう。で、覚えておいてください

@Injectable() 
export class DataService { 
    constructor(private http: HttpClient) { } //<-- inject HttpClient 
    getData() { 
     return this.http.get('../assets/data.json') 
    }).catch(
     (error: Response) => { 
     return Observable.throw(error); 
    }); 
} 

コンポーネントあなたのサービス

@Component({ 
    selector: 'app-root', 
    templateUrl: './app.component.html', 
    styleUrls: ['./app.component.css'] 
}) 
export class AppComponent implements OnInit { 
    constructor(private dataService:DataService){} //<--inject the service 

    data:any //<--a variable 
    ngOnInit(){ 
    this.dataService.getData().subscribe((data)=> 
    { 
     this.data=data 
    } 
} 

を(将来的には、データにアクセスするための方法を変更たいと思う場合は、サービスを変更する必要があります)あなたのapp.moduleはサービスを宣言します

@NgModule({ 
    ... 
    providers: [DataService,..] 
} 

もちろん、コンポーネント内ですべてを行うことはできますが、dis承認済み

+0

ありがとう –

関連する問題