go中的json

1.说明

在go中,使用json.Marshal()函数可以对一组数据进行JSON格式的编码
将一个对象编码成JSON数据
func Marshal(v interface{}) ([]byte, error)
将JSON数据解码
func Unmarshal(data []byte, v interface{}) error


2. 直接使用
   (1).将对象转换成json
type Person struct {
	Name string
	Age  int
}

func main() {
	person := Person{
		Name: "yw",
		Age:  11,
	}
    //将对象转换成json
	pjson, err := json.Marshal(person)
	if err != nil {
		log.Panic(err)
	}
	fmt.Printf("json:%v",string(pjson))
}
   (2). 将json转换成对象
func main() {
	var pjson = []byte(`[
    {"Name": "yw", "Age": 12},
    {"Name": "zk",  "Age": 13}
]`)
	var persionList []Person
	//将json转换成结构体
	err := json.Unmarshal(pjson, &persionList)
	if err != nil {
		fmt.Println("error:", err)
	}
	fmt.Printf("%+v", persionList)
}

在这里插入图片描述

   (3).将嵌套json转化成结构体
   var pjson = []byte(`{"Name": "yw","Age": 12,
          "Children":[{"Name":"大旺","Sex":"男"},{"Name":"小旺","Sex":"女"}]}`)
   var persion map[string]interface{}
   //var persion interface{}
   //将json转换成结构体
   err := json.Unmarshal(pjson, &persion)
   if err != nil {
   	fmt.Println("error:", err)
   }
   fmt.Printf("%+v \n", persion)

在这里插入图片描述


3. 使用Encode和Decode操作json
   (1).使用Decode
http.HandleFunc("/decode", func(w http.ResponseWriter, r *http.Request) {
   	var person Person
   	json.NewDecoder(r.Body).Decode(&person)
   	fmt.Printf("%+v \n", person)
   })
   http.ListenAndServe(":8080", nil)

在这里插入图片描述

   (2).使用Encode
http.HandleFunc("/encode", func(w http.ResponseWriter, r *http.Request) {
   	per := Person{
   		Name: "ywx",
   		Age: 25,
   	}

   	json.NewEncoder(w).Encode(per)
   })
   http.ListenAndServe(":8080", nil)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值