我有2个结构如下
type Job struct {
// Id int
ScheduleTime []CronTime
CallbackUrl string
JobDescriptor string
}
type CronTime struct {
second int
minute int
hour int
dayOfMonth int
month int
dayOfWeek int
}
所以你可以看到 Job 类型有一个 Array 类型Crontime
我有一个发布请求,它涉及以下功能
func ScheduleJob(w http.ResponseWriter, r *http.Request) {
log.Println("Schedule a Job")
addResponseHeaders(w)
decoder := json.NewDecoder(r.Body)
var job *models.Job
err := decoder.Decode(&job)
if err != nil {
http.Error(w, "Failed to get request Body", http.StatusBadRequest)
return
}
log.Println(job)
fmt.Fprintf(w, "Job Posted Successfully to %s", r.URL.Path)
}
我正在尝试将请求Body
对象解码为Job
对象
我请求的 JSON 对象看起来像
{
"ScheduleTime" :
[{
"second" : 0,
"minute" : 1,
"hour" : 10,
"dayOfMonth" : 1,
"month" : 1,
"dayOfWeek" : 2
}],
"CallbackUrl" : "SomeUrl",
"JobDescriptor" : "SendPush"
}
但是 Json 解码器无法将请求正文解码ScheduleTime
为CronTime
.
我得到{[{0 0 0 0 0 0}] SomeUrl SendPush}
上述请求的日志输出。但我期待它{[{0 1 10 1 1 2}] SomeUrl SendPush}
有人可以告诉我我做错了什么吗?