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)
}
相关推荐
谙弆悕博士10 分钟前
【附C语言源码】从零实现命令行贪吃蛇游戏
c语言·开发语言·学习·游戏·游戏程序·小游戏·贪吃蛇
南境十里·墨染春水27 分钟前
linux学习进展 git详解
linux·git·学习
小新同学^O^1 小时前
简单学习 --> 单例模式
java·学习·多线程
这个名字先用着1 小时前
形位公差速查详解
学习·汽车·制造
Jackyzhe1 小时前
从零学习Kafka:幂等与事务
数据库·学习·kafka
小新同学^O^2 小时前
简单学习 --> 文件IO
java·学习·文件io
学习使我快乐012 小时前
Express 学习
学习·node.js·express
熠熠仔2 小时前
《Agentic Design Patterns》概览
学习·设计模式
Tutankaaa2 小时前
从单场到多场并发:知识竞赛平台的弹性扩展能力
服务器·笔记·学习·职场和发展
奶人五毛拉人一块3 小时前
C++ AVL树的学习
学习·二叉树·avl树·旋转