思路:
-
一个json对象就是一个结构体
-
一个json数组就是一个切片
- json数组放json对象就是切片里面放结构体
{
"order_id":"2019070721318",
"order_price":26.87,
"goods":[
{
"goods_name":"手机",
"goods_price":23.9,
"goods_coloer":[
{
"good":"红色"
},
{
"good":"黑色"
}
]
},
{
"goods_name":"电脑",
"goods_price":123.9,
"goods_coloer":[
{
"good":"红色"
},
{
"good":"黑色"
}
]
}
]
}
列1
//struct
//一个json对象就是一个结构体
//一个json数组就是一个切片
//json数组放json对象就是切片类型的结构体(切片里面放结构体)
type Order struct {
OrderId string `json:"order_id"`
OrderPrice float64 `json:"order_price"`
Goods []Good `json:"goods"`
}
type Good struct {
GoodsName string `json:"goods_name"`
GoodsPrice float64 `json:"goods_price"`
GoodsColoer []Color `json:"goods_coloer"`
}
type Color struct {
GoodColor string `json:"good"`
}
func main() {
var OrderInfo Order
OrderInfo.OrderId = "2019070721318"
OrderInfo.OrderPrice = 26.87
var csli []Color
csli = append(csli,Color{GoodColor:"红色" })
csli = append(csli,Color{GoodColor:"黑色" })
OrderInfo.Goods=append(OrderInfo.Goods,Good{GoodsName: "手机",GoodsColoer: csli,GoodsPrice: 23.9})
OrderInfo.Goods=append(OrderInfo.Goods,Good{GoodsName: "电脑",GoodsColoer: csli,GoodsPrice: 123.9})
data,_ :=json.Marshal(OrderInfo)
fmt.Println("data",string(data))
var tmp Order
err := json.Unmarshal(data,&tmp)
if err != nil {
fmt.Println(err)
}
fmt.Println(tmp)
}