Получить json из файла машинописного текста

У меня этот код в моей службе

import {Injectable} from '@angular/core';
import {Http, Headers, RequestOptions} from '@angular/http';
import 'rxjs/add/operator/map';
import {Client} from "../clients/client";
import {Observable} from "rxjs/Observable";


@Injectable()
export class ClientsService {


  private clientUrl = './client.json';

  private headers = new Headers({ 'Accept': 'application/json' });
  private options = new RequestOptions({ headers: this.headers });

  private client : Client;

  constructor(private http:Http) {}

  getClient() : Observable<any>{
    return this.http.get(this.clientUrl, this.options)
      .map(res => res);
  }
}

и в моем компоненте я называю это:

this.client = this.clientsService.getClient()
  .subscribe(data => {
    console.log(data);
  });

Но я получаю ошибку 404

введите описание изображения здесь

Но у меня есть этот jsonфайл в той же папке, где находится моя служба.

введите описание изображения здесь

Что не так?

json,angular,typescript,

4

Ответов: 3


1 принят

Вам нужно дать абсолютный путь от вашего базового пути. Подобно,path/to/Services/client.json

Вот пример: https://plnkr.co/edit/60E2qb9gOjvkEAeR5CtE?p=preview


0

Если вы используете angular-cli Храните файл json в папке папки «Активы» (параллельно с каталогом приложения)

В вашем случае вам нужно создать файл, например assets / client.json

return this.http.get('/client.json'))
    .map((response: Response) => {
        console.log("mock data" + response.json());
        return response.json();
    }
    )
    .catch(this.handleError);
}

Примечание: здесь вам нужно только указать путь в папке с ресурсами, например assets / client.json, тогда вам нужно написать путь, как /client.json

Если вы используете webpack, вам нужно следовать над той же структурой внутри общей папки, что и аналогичная папка с ресурсами.


0

Добавьте этот код в файл typings.d.ts

declare module "*.json"
{ const value: any;
  export default value;
}
declare module "json!*"
{ const value: any;
  export default value;
}

и просто импортировать import * as data1 from 'path.json';

JSON, угловая, машинопись,
Похожие вопросы
Яндекс.Метрика