import "fmt"
func main() {
dict := map[string]int{"key1": 1, "key2": 2}
if value, ok := dict["key1"]; ok {
fmt.Printf(value)
} else {
fmt.Println("key1 不存在")
}
}
Json Marshal:将数据编码成json字符串
Json Unmarshal:将json字符串解码到相应的数据结构
我在做这个的时候 去掉了 json.Unmarshal (data,&layerdata) 这行,留到后面二次解析时 用
gin 解析body 只能一次_定格的青春的博客-CSDN博客
func authSwaggerRequest() gin.HandlerFunc {
return func(c *gin.Context) {
// gin请求body默认只能解析一次,解析后重新设置Body
data, err := c.GetRawData()
// layerData解析出的数据
json.Unmarshal(data, &layerData)
...... 根据需要,添加对应的处理逻辑。
// 重新设置request的Body (关键点)
c.Request.Body = ioutil.NopCloser(bytes.NewBuffer(data))
c.Next()
}
}
原文逻辑:此处没有反序列化 留到原文后面去反序列化:
data,err := context.GetRawData()
stringData := string(data)
context.Request.Body = ioutil.NopCloser(bytes.NewBuffer(data))
context.Next()