【Golang】GoFrame 框架处理json参数以常规方式接收

本文介绍了在GoFrame框架下如何方便地处理JSON参数。通过创建一个公共方法,可以在路由中像接收普通参数一样接收JSON数据,简化了类型转化的步骤,提高了代码的可读性和便利性。
摘要由CSDN通过智能技术生成

在 GoFrame 框架中可以使用 r.Request.Get() 接收参数,但application/json参数不能以这种方式接收。
可以使用 r.Request.GetRaw() 接收,但返回值是[]byte类型需要进一步转化很不方便。
于是我便想写一个公共处理让application/json参数可以像接收form-data参数一样接收。

在util包下写一个公共方法 request.go

package util

import (
    "encoding/json"
    "github.com/gogf/gf/g/net/ghttp"
    "github.com/gogf/gf/g/util/gconv"
    "io/ioutil"
    "strings"
)

// 设置请求
func Request(r *ghttp.Request) {
    contentType := r.Request.Header.Get("Content-type")
    if strings.Index(contentType, "application/json") > -1 {
        body,_ := ioutil.ReadAll(r.Body)
        var queryMap map[string]interface{}
        err := json.Unmarshal(body, &queryMap)
        if err == nil {
            method := r.Request.Method

            var value string
            for key := range queryMap {
   
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值