невозможно прочитать данные из внешнего файла JSON: Ionic - PullRequest
0 голосов
/ 13 ноября 2018

Я настроил все URL в файле JSON с именем ionic-config.JSON.Данные как

[
    {
        "db_url": "http://localhost:3000/users/"
    }
]

Я пытаюсь прочитать данные, используя метод GET.

url: string = '../ionic-config/ionic-config.json';
this.http.get(this.url).subscribe( (data: any) => {
      this.db_url = data;
    })

Но я получаю сообщение об ошибке, так как 404 не найдено

GET http://localhost:8100/ionic-config/ionic-config.json 404 (не найдено)

Файл находится в каталоге src/ionic-config/ionic-config.json

Ответы [ 3 ]

0 голосов
/ 14 ноября 2018

Вам не нужно отправлять http-запрос на тот же сервер.Чтобы использовать файл JSON в вашем приложении:

Например, если ваш файл JSON находится в /src/pages/YourPage/myJson.json, перейдите к вашему YourPage.ts (в той же папке, что и ваш JSON) и скажитеimport * as jsonData from './myJson.json';

Теперь вы можете использовать его как обычный объект JSON, не анализируя его.

Например: (поскольку ваш JSON является массивом объектов):

console.log(jsonData[0].db_url);
0 голосов
/ 14 ноября 2018

Вы можете выбрать любой из следующих способов.

1. Использование Api Call

а. Просто переместите файл ionic-config.json в папку assets для лучшего потока кода. Затем сделайте вызов API следующим образом.

return this.http.get('assets/ionic-config.json')
    .map(res=> return res.json);

б. в вашей .ts file подписаться на вызов API, как это

<method_name_in_service_file>.subscribe(resp=>{
 this.db_url = resp;
},error=>{
   console.log(error)
})

2. Прямой импорт из файла ionic-config

как это

import * as dbUrl from '<path to the config file>'

Вы получите URL от dbUrl[0].db_url

0 голосов
/ 13 ноября 2018

Похоже, проблема с вашим путем.

Попробуйте это:

url: string = 'ionic-config/ionic-config.json';

Кроме того, ваша логика для присвоения значения db_url неверна. Вы назначаете весь массив, а не поле определенного объекта в массиве. Используйте это вместо:

this.db_url = data[0].db_url;
...