在典型的JSON 解析場景中,時間值應遵循RFC 3339 格式(“2006-01-02T15”) :04:05Z07:00")。但是,在處理非標準時間格式時,預設的JSON 解碼器會遇到問題。
為了克服這一問題,可以為表示非標準時間格式的自定義資料型別實作自訂編組和解組方法。 ,JSON 解碼器現在可以成功解析非標準時間格式:
// Create a type alias for the non-standard time format type JsonBirthDate time.Time // Implement UnmarshalJSON to handle conversion from JSON string to time.Time func (j *JsonBirthDate) UnmarshalJSON(b []byte) error { s := strings.Trim(string(b), "\"") t, err := time.Parse("2006-01-02", s) if err != nil { return err } *j = JsonBirthDate(t) return nil } // Implement MarshalJSON to handle conversion from time.Time to JSON string func (j JsonBirthDate) MarshalJSON() ([]byte, error) { return json.Marshal(time.Time(j)) }
以上是JSON解析中如何處理非標準時間格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!