青训营笔记

178 阅读1分钟
  1. 用到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"`
}