2017-07-13 34 views
0

在我的Angular 2應用程序中,我需要解析一些包含舊ASP.NET日期的JSON字符串,例如/Date(1497984415000-0500)/(我從WCF服務接收它們)。JSON.parse - 爲所有人設置reviver

我知道我可以使用JSON.parsereviver parameter,但我需要做的,很多時候在我的web應用程序的多頁,所以我想一勞永逸設置齊磊。

我該如何做到這一點?

回答

1

你可以通過發送所有帶管道功能的函數來做到這一點。

postMethods(url:any,data:any) :Observable<Response>{ 

     let headers = new Headers(); 
     headers.append('Content-Type', 'application/json'); 

     return this.http.post(`${API_URL+url}`,JSON.stringify(data),{headers:headers}) 
      .map((res:Response)=>{ 

       return this.dateConverter(res.json());}) 
      .catch((error:any)=>{ 
       return Observable.throw(error)||'server error';}); 
     } 


dateConverter(date){ 
    return new Date(date); 
    } 

你可能有很多像下面這樣的api方法。你可以調用上面的函數來發送請求。

testMethod(data){ 
     return this.postMethods('/setting/ChangePassword',data) 
      .map(res=>{ 
       return res; 
      }); 
    } 
+0

非常感謝您的回答。你的意思是我必須用'JSON.parse(response,myReviver)'來更改'res.json()'? – Brutus

+0

如果你想將響應轉換爲json,'response.json()'爲你工作.JSON.parse也可以。 –

+0

我這麼認爲,因爲我需要使用reviver來轉換ASP.NET日期! – Brutus