Go295:json编解码介绍

json编解码介绍

{
	“name“:“矮大紧“,
	 “sex“:“man“,
	“age“:131,
	“gir1s“:[“金莲“,“凤姐“,“码蓉“,“春哥“],
	 “成绩“:21497896],
	“家电“:“彩电“:“海尔“,“洗衣机“:“三星“},
 “stars“:[
	{“name“:“Faye“,“address“:“北京“}{“name“:“andy“,“address“:“香港“}{“address“:“台湾“,“name“:“eddie“} 
  ]
}

记住,json语法要求最后一个元素后面,不能叫逗号

json编解码

在网络中传输的时候,把student结构体,编码成json字符串,传输 ==> 结构体 ==> 字符串 ==>编码

在接收字符串,需要将字符串转换成结构体,然后操作 > 字符串 == > 结构体>解码

demo

package main

import (
	"encoding/json"
	"fmt"
)

type Student struct{
	Name string
	Age int
	Id int
	gender string //注意gender是小写的,小写字母开头的在json编码的时候回忽略掉
}

func main () {
	//在网络中传输的时候,把student结构体,编码成json字符串,传输 ==> 结构体 ==> 字符串 ==>编码

	//在接收字符串,需要将字符串转换成结构体,然后操作 ==>  字符串 == > 结构体==>解码

	lily := Student{
		Id: 1,
		Name: "Lily",
		Age: 20,
		gender: "女士",
	}

	//编码(序列化), 结构=》 字符串
	//func Marshal(v interface{}) ([]byte, error)
	encodeInfo, err := json.Marshal(&lily)
	if err != nil {
		fmt.Println("json.Mashal err:", err)
		return
	}

	fmt.Println("encondeInfo:", string(encodeInfo))

	//对端接收到数据
	//反序列化(解码):字符串=》结构体

	var lily2 Student//创建一个空对象
	//func Unmarshal(data []byte, v interface{}) error
	if err := json.Unmarshal([]byte(encodeInfo),&lily2 ); err != nil {
		fmt.Println("json.Unmarshal err:",  err)
		return
	}

	fmt.Println("name:", lily2.Name)
	fmt.Println("id:", lily2.Id)
	fmt.Println("age:", lily2.Age)
	fmt.Println("gender:", lily2.gender)

}

请添加图片描述
结果

tianyi@SPACE-STATION day3 % go run json.go
encondeInfo: {"Name":"Lily","Age":20,"Id":1,"Gender":"女士"}
name: Lily
id: 1
age: 20
gender: 女士

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值