go语言json解析函数Unmarshal踩了个小坑

小程序提交的数据是json格式,go后台获取。

type FormData struct {
		businessMessage string  `form:"businessMessage"`
		formId string `form:"formId"`
		sign string `form:"sign"`
		time string `form:"time"`
		goodsJsonStr string `form:"goodsJsonStr"`
		receiverInfoId int `form:"receiverInfoId"`
	}
	var form FormData
	if err := json.Unmarshal(c.Ctx.Input.RequestBody, &form); err == nil {
		fmt.Println(form)
	} else {
		c.Data["json"] = err.Error()
	}

~~结果获取不到数据。

心想着改成大写试试,后来验证果然是这样。之后网上查了下,挺多人在初学的时候都遇到过这样的小坑。

全都改成首字母大写就行了。

type FormData struct {
		BusinessMessage string  `form:"businessMessage"`
		FormId string `form:"formId"`
		Sign string `form:"sign"`
		Time string `form:"time"`
		GoodsJsonStr string `form:"goodsJsonStr"`
		ReceiverInfoId int `form:"receiverInfoId"`
	}
	var form FormData
	if err := json.Unmarshal(c.Ctx.Input.RequestBody, &form); err == nil {
		fmt.Println(form)
		/*if _, err := models.AddNsOrder(&v); err == nil {
			c.Ctx.Output.SetStatus(201)
			c.Data["json"] = v
		} else {
			c.Data["json"] = err.Error()
		}*/
	} else {
		c.Data["json"] = err.Error()
	}

林明潭blog
请先登录后发表评论
  • latest comments
  • 总共0条评论