我目前无法将数据从地图正确解组到结构中。以下是代码片段(操场上的简短代码):请您提供在解组回数据时获取默认值的原因。package mainimport ( "fmt" "encoding/json" "os" )func main() { fmt.Println("Hello, playground") type PDPOffer struct { cart_value int `json:"cart_value"` discount_amount_default int `json:"discount_amount_default"` max_discount string `json:"max_discount"` } a:= map[string]interface{} { "cart_value" : 1, "max_discount" : 2, } var pdf PDPOffer b, err := json.Marshal(a) if err != nil { fmt.Println("error:", err) } os.Stdout.Write(b)//working err1 := json.Unmarshal(b, &pdf) if err1 != nil { fmt.Println("error:", err) } fmt.Printf("%+v", pdf)//displaying just the defualt values????????}
3 回答
jeck猫
TA贡献1909条经验 获得超7个赞
此外,您试图将一个 int 值编组为“max_discount”的字符串,您需要将其作为字符串存储在您要编组的地图中:
a := map[string]interface{}{
"cart_value": 1,
"max_discount": "2",
}
错误处理有一个错误检查err1 != nil然后打印err隐藏消息error: json: cannot unmarshal number into Go value of type string
所有修复的工作示例:http : //play.golang.org/p/L8VC-531nS
冉冉说
TA贡献1877条经验 获得超1个赞
解组不起作用的原因是您需要公开结构的字段,为此您需要以大写字母开头的字段名称。有以下内容:
type PDPOffer struct {
Cart_value int `json:"cart_value"`
Discount_amount_default int `json:"discount_amount_default"`
Max_discount string `json:"max_discount"`
}
- 3 回答
- 0 关注
- 281 浏览
添加回答
举报
0/150
提交
取消