簡體   English   中英

當對象來自Web API時如何避免將日期轉換為字符串

[英]How to avoid converting date to string when object cames from web API

我有一堂課:

 export class TestClass { paymentDate: Date; } 

當我嘗試從某些服務器API獲取此類的對象時,paymentDate字段以字符串形式出現,因此我無法調用此字段.getDate()方法。 有沒有可能避免這種轉換?

UPD。 這是一個例子:
在此處輸入圖片說明

我還要注意,服務器返回的模型如下:

public class TestClass
    {
        public DateTime? PaymentDate { get; set; }
    }

如果您需要服務器端(看起來像C#)或客戶端(javascript)方面的幫助,我會感到困惑

不管哪種方式,一種方法就是編寫一個自定義的setter或具有一個將Web api中的數據映射到該類的map函數。

我沒有測試此代碼,但其想法是要有一個解析器來解析日期。

服務器/ C#代碼:

public class TestClass {
  private DateTime paymentdate
  public DateTime? PaymentDate {
    get { 
      return paymentdate
    }
    set {
      this.paymentdate = DateTime.ParseExact(value, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture)
    }
  }
}

我還沒有測試過C#代碼,但是它應該為您提供正確的方向。

在客戶端(javascript /打字稿)上,您可以執行以下操作。

export class TestClass {
  private _paymentdate: Date;

  get paymentDate(): Date {
    return this._paymentDate
  }

  set paymentDate(value: string) {
    this._paymentDate = new Date(value);
  }
}

此處的解析在設置器中進行。 因此,您避免在代碼中檢索值。

然后,您將執行以下操作:

let myTestClass = new TestClass();
request.get('pathtoapi').then(function(result) {
  myTestClass.paymentDate = result.payment.paymentDate
})

您可以將響應包裝在Date對象中

嘗試

var responsePaymentDate = new Date(this.payment.paymentDate);

現在您將可以在此對象上調用get,set函數

希望這可以幫助 !

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM