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包访问

}

 

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

你可能感兴趣的:(golang学习,学习)