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)
}
相关推荐
九年义务漏网鲨鱼37 分钟前
从零学习 Agentic RL(四)—— 超越 ReAct 的线性束缚:深入解析 Tree-of-Thoughts (ToT)
前端·学习·react.js
代码哈士奇2 小时前
无界微前端学习和使用
前端·学习
终焉代码2 小时前
【C++】C++11特性学习(1)——列表初始化 | 右值引用与移动语义
c语言·c++·学习·1024程序员节
爱做ppt的阿伟2 小时前
油猴脚本学习1——元数据头部
学习
半夏知半秋3 小时前
redis-哨兵模式配置整理
数据库·redis·笔记·后端·学习·lua·安全架构
帅帅dl3 小时前
Git学习(2)
学习
勇往直前plus3 小时前
学习和掌握RabbitMQ及其与springboot的整合实践(篇一)
spring boot·学习·spring cloud·rabbitmq·java-rabbitmq
华清远见成都中心3 小时前
嵌入式需要掌握哪些核心技能?
物联网·学习·嵌入式·华清远见
codeyanwu3 小时前
Excel 学习笔记
学习·excel·1024程序员节
宁清明5 小时前
【小宁的学习日记2 C语言】C语言判断
c语言·学习·算法