gpt4 book ai didi

json - 请求正文日期解析问题

转载 作者:IT王子 更新时间:2023-10-29 02:06:55 25 4
gpt4 key购买 nike

我有一个奇怪的问题。我正在使用 echo 包进行路由。当我将 json 解码为 struct 时,出现错误 parsing time\"\"2019-01-02\"\"as\"\"2006-01-02T15:04:05Z07:00\"\": 无法将\"\"\"解析为\"T\""

我的结构

VendorAgreement struct {
ID primitive.ObjectID `json:"id" bson:"_id"`
StartDate time.Time `json:"start_date,date" bson:"start_date"`
EndDate time.Time `json:"end_date,date" bson:"end_date"`
CommissionPercentage float32 `json:"commission_percentage" bson:"commission_percentage"`
Status int `json:"status" bson:"status"`
CreatedDate time.Time `json:"created_date" bson:"created_date"`
Media VendorAgreementMedia `json:"media" bson:"media"`
}

VendorAgreementMedia struct {
MediaId primitive.ObjectID `json:"mediaId" bson:"_id"`
FileName string `json:"file_name" bson:"file_name"`
SourcePath string `json:"source_path" bson:"source_path"`
CreatedDate time.Time `json:"created_date" bson:"created_date"`
}

我的解码步骤

var agreement VendorAgreement
err = json.NewDecoder(c.Request().Body).Decode(&agreement)

请求正文

 {
"start_date":"2019-01-02",
"end_date":"2020-05-06",
"commission_percentage":10,
"media":{
"mediaId":"5cd1644cc57849f0761632b5"
}
}

最佳答案

您需要自定义时间类型才能解码自定义时间格式:

type Datetime struct {
time.Time
}

func (t *Datetime) UnmarshalJSON(input []byte) error {
strInput := strings.Trim(string(input), `"`)
newTime, err := time.Parse("2006-01-02", strInput)
if err != nil {
return err
}

t.Time = newTime
return nil
}

VendorAgreement struct {
ID primitive.ObjectID `json:"id" bson:"_id"`
StartDate Datetime `json:"start_date,date" bson:"start_date"`
EndDate Datetime `json:"end_date,date" bson:"end_date"`
CommissionPercentage float32 `json:"commission_percentage" bson:"commission_percentage"`
Status int `json:"status" bson:"status"`
CreatedDate Datetime `json:"created_date" bson:"created_date"`
Media VendorAgreementMedia `json:"media" bson:"media"`
}

VendorAgreementMedia struct {
MediaId primitive.ObjectID `json:"mediaId" bson:"_id"`
FileName string `json:"file_name" bson:"file_name"`
SourcePath string `json:"source_path" bson:"source_path"`
CreatedDate Datetime `json:"created_date" bson:"created_date"`
}

关于json - 请求正文日期解析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56023335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com