将JSON响应从oracle转换为angular 2变量

时间:2017-10-13 03:39:43

标签: json angular response node-oracle

我正在尝试从oracle db获取数据并显示它。我已经使用express api和node创建了一个服务,并且能够成功运行它。 我创建了角度服务来获取数据,并将其分配给角度组件,但我无法将JSON响应映射到角度变量。请检查下面的代码并帮助我在angular component.ts中需要更改的内容以及如何在html中使用该变量。

来自oracle DB的JSON数据:

[{"COUNT":27}]

角度服务:

  getCount(): Promise<String[]> {
    return this.http.get(this.heroesUrl)
               .toPromise()
               .then(response => response.json().data)
               .catch(this.handleError);
  }

angular component.ts

 dataGS : String[];
getData(): void {
    this.dataService
        .getCount()
        .then(dataGS => this.dataGS = dataGS);

3 个答案:

答案 0 :(得分:0)

怎么样?
 getCount(): Promise<String[]> {
    return this.http.get(this.heroesUrl)
               .toPromise()
               .then(response => {
                     response.json().map(function(item) {
                            return item['COUNT'];
                         })
                       })
               .catch(this.handleError);
  }
你的HTML中的

 <div><p *ngFor="let d of dataGS ">{{d}}</p></div>

答案 1 :(得分:0)

你可以在角度template bindings的帮助下实现这一目标。

例如 - 在您的组件中,您从this.dataGS = [{"COUNT":27}]获取数据后会收到db。然后在html template上,您可以在Interpolation之类的

的帮助下显示此内容
<div>{{dataGS[0].count}}</div>

答案 2 :(得分:0)

您的回复没有属性data,它只是一个数组。所以而不是:

.then(response => response.json().data)

做的:

.then(response => response.json())

现在你将得到你的阵列。然后按照jitender的建议,您可以迭代您的回复:

<div><p *ngFor="let d of dataGS ">{{d}}</p></div>