在Golang的世界里,用encoding/json解析到对象要么用map[string]interface{},要么用struct。
当遇到嵌套层级多的json:
- 用map的方式需要做很多次断言
- 用struct需要定义很多个struct嵌套
Golang中可以定义临时结构体。如果不需要返回结构体而是得到json中的字段值,那么可以通过定义嵌套的结构体解析json。
例如:
jsonObj := struct {
Success bool `json:"success"`
Data struct {
TransferRequest struct {
Status string `json:"status"`
} `json:"request"`
} `json:"data"`
}{}
这样,就可以解析三层json对象。而不需要定义多个struct
json:
{
"success": true,
"data": {
"request": {
"status": "accepted",
}
}
}