我正在尝试将从POST
请求提交的JSON解析为Web服务中的结构以发送电子邮件。在请求正文中提交了以下JSON。
{
"body": {
"template": "abctemplate.html",
"params": {
"name": "Chase",
"email": "1234@gmail.com"
}
},
"to": [
"abc@gmail.com",
"xyz@gmail.com"
],
"cc": [
"xxx@example.com",
"yyy@example.com"
],
"replyTo": {
"email": "aaa@gmail.com",
"name": "Jack"
},
"bcc": "ccc@gmail.com",
"subject": "Hello, world!"
}
将其映射并读入以下结构
type emailData struct {
Body struct {
Template string `json:"template"`
Params map[string]string `json:"params"`
} `json:"body"`
To map[string]string `json:"To"` // TODO This is wrong
CC string `json:"cc"` // TODO this is wrong
ReplyTo struct {
Email string `json:"email"`
Name string `json:"name"`
}
BCC string `json:"bcc"`
Subject string `json:"subject"`
}
'to'和'cc'JSON字段都是未知长度的字符串数组,没有键。有没有办法将字符串数组映射到struct字段?我已经尝试了两种不同的方式,即// TODO
标签没有运气。谢谢!
答案 0 :(得分:1)
cc
和to
都是json数组,您可以在不考虑长度的情况下将其解组到Go切片中。
type emailData struct {
Body struct {
Template string `json:"template"`
Params map[string]string `json:"params"`
} `json:"body"`
To []string `json:"to"`
CC []string `json:"cc"`
ReplyTo struct {
Email string `json:"email"`
Name string `json:"name"`
}
BCC string `json:"bcc"`
Subject string `json:"subject"`
}
答案 1 :(得分:0)