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)
}
相关推荐
sbjdhjd40 分钟前
大三网安秋招核心学习前言(AI 安全 + Web 漏洞 + 内网渗透全考点)
人工智能·网络协议·学习·安全·网络安全·开源·php
LccKyI2 小时前
C#学习day06(方法/函数及其关键字,附思维导图)
经验分享·学习·c#
xian_wwq2 小时前
【学习笔记】Loop Engineering,从手动提示到目标驱动自动化-13/16
笔记·学习·自动化
殷忆枫2 小时前
K210 BOX学习笔记:环境搭建及模型训练部署
学习
qq_185198693 小时前
SpingBoot3入门学习-Web开发-三
java·数据库·学习
lifallen3 小时前
Avernet:Agent 的组织网络
人工智能·学习·ai·开源软件·ai编程
我爱cope3 小时前
【计算机网络 | 数据链路层2:差错检测与纠正:奇偶校验、校验和、CRC 分别怎么工作?】
网络·学习·计算机网络
知识分享小能手3 小时前
线性代数学习教程,从入门到精通,矩阵及其运算 — 完整知识点与详细推导(3)
学习·线性代数·矩阵
小弥儿4 小时前
Firecrawl:把整个网页变成 AI 可查询的数据库
数据库·人工智能·学习
woshihuanglaoshi4 小时前
鸿蒙老旧项目升级改造高级:API废弃迁移/ArkTS语法升级/架构重构策略/增量迁移/风险管控方案
学习·华为·重构·架构·harmonyos·鸿蒙