我有一个 json:
{"code":200,
"msg":"success",
"data":{"url":"https:\/\/mp.weixin.qq.com\/cgi-bin\/showqrcode?ticket=gQHQ7jwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyX3pqS0pMZlA4a1AxbEJkemhvMVoAAgQ5TGNYAwQsAQAA"}}
Run Code Online (Sandbox Code Playgroud)
我定义了一个结构:
type Result struct {
code int
msg string `json:"msg"`
data map[string]interface{} `json:"data"`
}
Run Code Online (Sandbox Code Playgroud)
对于这段代码:
var res Result
json.Unmarshal(body, &res)
fmt.Println(res)
Run Code Online (Sandbox Code Playgroud)
输出是:{0 map[]}
我想进去url,data怎么进去?
您应该通过将字段 ( code, msg, data)Result的首字母大写来导出字段 ( Code, Msg, Data) 来访问(设置/获取)它们:
package main
import (
"encoding/json"
"fmt"
)
type Result struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data map[string]interface{} `json:"data"`
}
func main() {
str := `{"code":200,"msg":"success","data":{"url":"https:\/\/mp.weixin.qq.com\/cgi-bin\/showqrcode?ticket=gQHQ7jwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyX3pqS0pMZlA4a1AxbEJkemhvMVoAAgQ5TGNYAwQsAQAA"}}`
var res Result
err := json.Unmarshal([]byte(str), &res)
fmt.Println(err)
fmt.Println(res)
}
Run Code Online (Sandbox Code Playgroud)
在https://play.golang.org/p/23ah8e_hCa上播放代码
相关问题:Golang - 结构字段中的大写字母
| 归档时间: |
|
| 查看次数: |
3285 次 |
| 最近记录: |