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

发布时间:2024年01月12日
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包访问

}

?

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)
}

文章来源:https://blog.csdn.net/qq_36770474/article/details/135554976
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。