首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用可观测值解析json对象的Angular2

使用可观测值解析json对象的Angular2
EN

Stack Overflow用户
提问于 2017-02-06 04:20:06
回答 1查看 672关注 0票数 0

我正在研究Angular2和MySQL,需要一些关于使用可观察的可注入服务的建议,

我创建了一个服务来使用getTable()从api获取所有数据,但是现在我不得不实现另一个服务来过滤和解析json数据,并且只使用数据对象中的epoch_timetemp (下面),并使用可观察的方式订阅它。我使用的是Angular2 V2.2

service.ts:

代码语言:javascript
复制
@Injectable()
export class TabuleService {

      //private headers = new Headers({'Content-Type': 'application/json'});
      private _Url = 'http://localhost:3000';  // URL to web api

      constructor(private _http: Http) {}

      getTable(): Observable<Tabule[]> {
        const url = this._Url+'/temperature';
        return this._http.get(url)
                   .map(res => res.json())
                   .catch(this.handleError);
      }

       getTemp(): Observable<testing[]> {
        const url = this._Url+'/temperature';
        return this._http.get(url)
                   .map(this.extractData)
                   //.filter(temp=>temp.mac==='3s-ds-23-sf-23-ce-32')
                   .catch(this.handleError);
      }            

    private extractData(res: Response){
      let body =res.json();
      console.log(body.data);
      return body.data || { };

    }

数据对象

代码语言:javascript
复制
    epoch_time_stamp:1486257208633
    mac:"3s-ds-23-sf-xx-xx-xx"
    task_id:2
    temp:"23"
    time_stamp:"2017-02-05T01:13:28.000Z"

    epoch_time_stamp:1486257208733
    mac:"3s-ds-23-sf-xx-xx-xx"
    task_id:3
    temp:"26"
    time_stamp:"2017-02-05T01:15:28.000Z"
EN

回答 1

Stack Overflow用户

发布于 2017-02-06 23:48:16

Observable.filter不适用于您所描述的问题。在您的.map方法中,您需要添加逻辑,根据您认为合适的情况“清理”数据。

例如:

代码语言:javascript
复制
getTemp(): Observable<testing[]> {
    const url = this._Url+'/temperature';
    return this._http.get(url)
        .map(res => {
            let temp = res.json();
            //Add logic here that loops through temp and cleans value
            return temp;
            }).catch(this.handleError);
        }   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42060255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档