思路:
- 一个json对象就是一个map
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201219120609877.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDAxNDk5NQ==,size_16,color_FFFFFF,t_70)
- 一个json数组就是一个切片
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201219120706781.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDAxNDk5NQ==,size_16,color_FFFFFF,t_70)
- json数组放对象就是相当于切片类型的Map(切片里面放map)
{
"good":[
{
"good_name":"手机",
"good_price":23.1,
"goods_color":[
{
"good_color":"粉红色",
"good_colors":"黑红色"
}
]
},
{
"good_name":"电脑",
"good_price":123.1,
"goods_color":[
{
"good_color":"粉红色",
"good_colors":"黑红色"
}
]
}
],
"order_id":"20190707212318",
"order_price":21.3
}
列1:
package main
import (
"encoding/json"
"fmt"
)
func main() {
var Order =make(map[string]interface{})
Order["order_id"] ="20190707212318"
Order["order_price"] =21.3
Goods :=make([]map[string]interface{},2)
Goods[0] =make(map[string]interface{})
Goods[0]["good_name"]="手机"
Goods[0]["good_price"]=23.1
Goods[1] = make(map[string]interface{})
Goods[1]["good_name"]="电脑"
Goods[1]["good_price"]=123.1
Order["good"] =Goods
var GoodsColor []map[string]interface{}
Color :=make(map[string]interface{})
Color["good_color"] ="粉红色"
Color["good_colors"] ="黑红色"
GoodsColor =append(GoodsColor,Color)
fmt.Println("GoodsColor",GoodsColor,len(GoodsColor))
fmt.Println("GoodsColor[0]",GoodsColor[0]["good_color"],len(GoodsColor[0]))
fmt.Println("Color",Color["good_color"])
Goods[0]["goods_color"] =GoodsColor
Goods[1]["goods_color"] =GoodsColor
data,err :=json.Marshal(Order)
if err != nil {
fmt.Println("错误:",err)
}
fmt.Println("data",string(data))
var tmp = make(map[string]interface{})
err =json.Unmarshal(data,&tmp)
if err != nil {
fmt.Println(err)
}
fmt.Println(tmp)
}
列2:
package main
import(
"encoding/json"
"fmt"
)
func main(){
var Order = make(map[string]interface{})
Order["order_id"] = "20190707212318"
Order["order_price"] = 21.3
Goods := make([]map[string]interface{},2)
Goods[0] = make(map[string]interface{})
Goods[0]["goods_name"] = "手机"
Goods[0]["goods_price"] = 23.1
Goods[1] = make(map[string]interface{})
Goods[1]["goods_name"] = "电脑"
Goods[1]["goods_price"] = 123.1
GoodsColor := make([]map[string]interface{},2)
GoodsColor[0] = make(map[string]interface{})
GoodsColor[0]["good_color"] = "红色"
GoodsColor[1] = make(map[string]interface{})
GoodsColor[1]["good_color"] = "蓝色"
Goods[0]["goods_color"] = GoodsColor
Goods[1]["goods_color"] = GoodsColor
Order["good"] = Goods
data ,_:= json.Marshal(Order)
fmt.Println(string(data))
var temp = make(map[string]interface{})
err := json.Unmarshal(data,&temp)
if err !=nil{
fmt.Println(err)
}
fmt.Println(temp)
}