【发布时间】:2016-04-14 07:19:13
【问题描述】:
我正在尝试解码通过 http.Get 检索到的一些 JSON。但是,当我检查使用 fmt.Println 初始化的结构时,它们始终为空。
我怀疑这是因为我的结构的结构与返回的 JSON 不一致,但我不知道如何修复它。一般来说,我不太确定decoder 是如何工作的。
这是 JSON:
{
"response":[
{
"list": {
"category":"(noun)",
"synonyms":"histrion|player|thespian|role player|performer|performing artist"
}
},
{
"list": {
"category":"(noun)",
"synonyms":"doer|worker|person|individual|someone|somebody|mortal|soul"
}
}
]
}
这是我迄今为止尝试过的:
type SynonymResponse struct {
lists []SynonymList
}
type SynonymList struct {
category string
synonyms string
}
var synonyms SynonymResponse;
dec := json.NewDecoder(response.Body)
err := dec.Decode(&synonyms)
if err != nil {
log.Fatal(err)
}
fmt.Println(synonyms)
编辑:根据@Leo 的回答和@JimB 的提示,我的尝试有两个问题。下面是正确的结构集,尽管正如 Leo 指出的那样,这将是空的:
type SynonymResponses struct {
resp []SynonymResponse
}
type SynonymResponse struct {
listo SynonymList
}
type SynonymList struct {
cat string
syns string
}
【问题讨论】: