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)
}
相关推荐
senator参议员1 天前
【软件使用】Calibre部分提参
学习
鲸落落丶1 天前
webpack学习
前端·学习·webpack
zhangrelay1 天前
操作系统全解析:Windows、macOS与Linux的深度对比与选择指南(AI)
linux·笔记·学习
程序边界1 天前
AI时代如何高效学习Python:从零基础到项目实战de封神之路(2025升级版)
人工智能·python·学习
charlie1145141911 天前
精读C++20设计模式——行为型设计模式:命令模式
c++·学习·设计模式·程序设计·命令模式·c++20
丶Darling.1 天前
26考研 | 王道 | 计算机组成原理 | 二、数据的表示和运算
笔记·学习·计算机组成原理
丰锋ff1 天前
2009 年真题配套词汇单词笔记(考研真相)
笔记·学习·考研
J.Kuchiki1 天前
【PostgreSQL内核学习:哈希聚合(HashAgg)执行流程与函数调用关系分析】
学习·postgresql
Miqiuha1 天前
设计模式之策略模式学习
学习·设计模式·策略模式
heardlover1 天前
GundamSeed003
学习·英语学习