2017-02-17 19 views
1

Я пытаюсь получить значение из JSON URL, я получил этот результат: Console ResultУгловые 2 Получить значения из объекта

Как я могу извлечь каждый элемент из этого объекта (closePrice, цена, updateTime)

это мой код:

GoldData:any; 

GetGoldFromJson() { 
    this.http.get('http://live.alsayg.com/api/v1/gold') 
    .map(res => res.json()) 
    .subscribe(
    data => { 
    this.GoldData=data, 
    console.log(this.GoldData); 
    } 
); 
} 
+0

Просто набрав 'this.GolData.variableThatINeedToUse'? – Tinwor

+0

Да, но я не могу прочитать значение вне функции GetGoldFromJson(). Я получил эту ошибку: Не могу прочитать свойство «цена» неопределенного – Fray

+0

Возможно, проблема в том, что код, который вы используете вне функции, вызывается до возвращения запроса http. Обязательно используйте переменную только после ее установки или использования значения по умолчанию. –

ответ

0

Просто сделай это (в классе обслуживания):

GetGoldFromJson() { 
    return this.http.get('http://live.alsayg.com/api/v1/gold') 
    .map(res => res.json()) 
} 

и потребляют с (в компоненте, просто вводят вышеуказанную службу в конструкторе компонента):

GoldData:any; 
getGold() { 
    service.GetGoldFromJson().subscribe(
    data => { 
    this.GoldData=data, 
    console.log(this.GoldData); 
    } 
); 
} 
0

Это операция асинхронной, так на комментарии визуализируется вид прежде, чем данные были получены , поэтому возникает ошибка. Вы можете решить это несколькими способами.

Инициализируйте свой объект, чтобы он не был неопределенным.

GoldData:any = {} 

Использование *ngIf, что позволит предотвратить часть в целях быть оказаны до тех пор, пока значения в GoldData:

<div *ngIf="GoldData"> 
    {{GoldData.yourProperty}} 
</div> 

или safe navigation operator:

{{GoldData?.yourProperty}}