go 1.判断key 2.gin.context 多读取body 3.marshal unmashal

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()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值