栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

go -Unmarshal 错误的几种情况

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

go -Unmarshal 错误的几种情况

情况1 返回的json是string,struct里边的tag是其他类型比如是int.则报错

返回的json如下 :

{"loan_product_id":"101","manage_rate":"0.41","overdue_rate":"0.09","late_fee_rate":"0.00"}


type OrderRet struct {
	ProductId   int     `json:"loan_product_id,int"`
	OverdueRate float64 `json:"overdue_rate,string"` //
	MangeRate   float64 `json:"manage_rate,string"`
	LateFeeRate float64 `json:"late_fee_rate,string"`
}

比如 OrderRet 结构体里边的 ProductId 类型是int, tag是int 但是json返回是string类型。报错为

cannot unmarshal string into Go struct field OrderRet.loan_product_id of type int

情况2 返回的json是int,struct里边的tag是其他类型比如是string.则报错

返回的josn

{"loan_product_id":101,"manage_rate":"0.41","overdue_rate":"0.09","late_fee_rate":"0.00"}

type OrderRet struct {
	ProductId   int     `json:"loan_product_id,string"`
	OverdueRate float64 `json:"overdue_rate,string"` //
	MangeRate   float64 `json:"manage_rate,string"`
	LateFeeRate float64 `json:"late_fee_rate,string"`
}
或者结构体
type OrderRet struct {
	ProductId   string  `json:"loan_product_id,string"`
	OverdueRate float64 `json:"overdue_rate,string"` //
	MangeRate   float64 `json:"manage_rate,string"`
	LateFeeRate float64 `json:"late_fee_rate,string"`
}
ProductId   string  `json:"loan_product_id,string"`  类型是 int或者 string,但是tag的与json的int不一样,这里的tag是string

比如 OrderRet 结构体里边的 ProductId 类型是int, tag是string 但是json返回是int类型。报错为

invalid use of ,string struct tag, trying to unmarshal unquoted value into string

正常情况 返回的json是字符串,struct是string,tag是int类型,这种不报错

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/903224.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号