golang学习-golang结构体和Json相互转换

1、结构体转为json对象

v, _ := json.Marshal(student)

jsonStr := string(v) // 结构体转为json对象
2、json字符串转为结构体

var s1 Student

err := json.Unmarshal([]byte(str), &s1) //json 字符串转为结构体

3、结构体标签

表示的是转换为json对象时,ID字段变为id,Name字段变为name.

type Student struct {

ID int `json:"id"`

Name string `json:"name"`

// name string 小写表示是私有变量,不能被json包访问

}

Go 复制代码
type Student struct {
	ID   int    `json:"id"`
	Name string `json:"name"`
	// name string  小写表示是私有变量,不能被json包访问
}

func main() {
	var student = Student{
		ID:   123,
		Name: "wei",
	}
	fmt.Println(student)
	v, _ := json.Marshal(student)
	jsonStr := string(v) // 结构体转为json对象
	fmt.Printf("%v\n", jsonStr)

	str := `{"ID":123,"Name":"wei"}`
	var s1 Student
	err := json.Unmarshal([]byte(str), &s1) //json 字符串转为结构体
	if err != nil {
		fmt.Println(err)
	}
	fmt.Printf("%#v", s1)
}
相关推荐
晓梦.3 小时前
Vue3学习笔记
笔记·学习
思成不止于此4 小时前
【MySQL 零基础入门】DQL 核心语法(二):表条件查询与分组查询篇
android·数据库·笔记·学习·mysql
lemon_sjdk5 小时前
java学习——枚举类
java·开发语言·学习
hd51cc6 小时前
MFC控件 学习笔记二
笔记·学习·mfc
习惯就好zz6 小时前
画画抓型学习总结
学习·九宫格·画画·抓型
Surpass余sheng军6 小时前
AI 时代下的网关技术选型
人工智能·经验分享·分布式·后端·学习·架构
2401_871260027 小时前
Java学习笔记(二)面向对象
java·python·学习
weixin_409383128 小时前
简单四方向a*学习记录10 重写前面的所有逻辑
学习
喏喏心8 小时前
深度强化学习:价值迭代与Bellman方程实践
人工智能·python·学习·机器学习
kkkkkkkkk_12019 小时前
【强化学习】06周博磊强化学习纲要学习笔记——第三课下
笔记·学习·强化学习