- 用到json序列化,看一下上一节课生成reques body是怎么生成的:需要构造一个结构体,让这个结构体的字段名字和我们json的结构是一一对应,直接调用json.Marshal即可55.37, %#v 先输出结构体名字值,再输出结构体
- 第一步实现请求的序列化
- 第二步把巨大的response获取出来然后获取其中几个字段比如解释和音标等等放到屏幕,在js或者python这些脚本语言里面这个Body返回的会是一个叫字典或者map的结构可以直接用方括号或者.去取值;但在golang不适合这个, 我们需要写一个结构体,然后这个结构体的字段和这个response是一一对应的,但是一一对应有点麻烦,所以我们得用代码生成
- 解析response
oktools.net/json2go
type AutoGenerated(DictResponse) struct {
Rc int `json:"rc"`
Wiki struct {
KnownInLaguages int `json:"known_in_laguages"`
Description struct {
Source string `json:"source"`
Target interface{} `json:"target"`
} `json:"description"`
ID string `json:"id"`
Item struct {
Source string `json:"source"`
Target string `json:"target"`
} `json:"item"`
ImageURL string `json:"image_url"`
IsSubject string `json:"is_subject"`
Sitelink string `json:"sitelink"`
} `json:"wiki"`
Dictionary struct {
Prons struct {
EnUs string `json:"en-us"`
En string `json:"en"`
} `json:"prons"`
Explanations []string `json:"explanations"`
Synonym []string `json:"synonym"`
Antonym []string `json:"antonym"`
WqxExample [][]string `json:"wqx_example"`
Entry string `json:"entry"`
Type string `json:"type"`
Related []interface{} `json:"related"`
Source string `json:"source"`
} `json:"dictionary"`
}