《Go 解析 JSON 的数据类型映射》

《Go 解析 JSON 的数据类型映射》

Go 标准库 encoding/json 在「JSON ↔ Go 类型」的映射关系如下:

JSON 类型 Go 类型
bool bool
数字 float64(默认)
字符串 string
数组 []interface{}
对象 map[string]interface{}
null nil

1. 使用结构体 + json Tag 解析

type Req struct { IsInChina bool `json:"in_china"` IsOrigin bool `json:"is_ori"` ReqCount float64 `json:"req, number"` } type Stats struct { Zone string `json:"zone"` CaptchaCount float64 `json:"captcha_count, number"` Reqs []map[string]interface{} `json:"reqs"` Timestamp string `json:"timestamp"` }

坑点:json 后面的 tag 必须使用双引号括起来,否则会出现莫名其妙的错误。

2. 生成 JSON

import "encoding/json" data, err := json.Marshal(stats) // 或缩进美化 data, err := json.MarshalIndent(stats, "", " ")

如果是 map/slice 等动态结构,直接用 map[string]interface{} 即可序列化。

阅读 — · 全站 —
🎸 我的歌单 0 首