golang:json序列化反序列化

Posted live4m

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang:json序列化反序列化相关的知识,希望对你有一定的参考价值。


package main

import (
	"encoding/json"
	"fmt"
)

type student struct {
	Name string `json:"name"` //tag可以自定义json的key
	age  int
}

func main() {
	//序列化
	s1 := student{
		Name: "xiaoming",
		age:  10,
	}
	bytes, err := json.Marshal(s1) //json序列化
	if err != nil {
		fmt.Printf("marshal failed, err:%v", err)
	}
	//age是小写字母开头,json包访问不到,因此结果里没有age
	fmt.Println(string(bytes))

	//反序列化
	str := `{"name":"xiaohong","age":10}`
	var s2 student
	json.Unmarshal([]byte(str), &s2) //json反序列化,为了能在函数内修改值,需要传入指针
	//age是小写字母开头,json包访问不到,因此结果里age未被初始化
	fmt.Println(s2)
}
/*
结果:
{"name":"xiaoming"}
{xiaohong 0}
*/

以上是关于golang:json序列化反序列化的主要内容,如果未能解决你的问题,请参考以下文章

golang json 序列化反序列化 字符串反序列化成 map[string]interface{}

Golang basic_leaming结构体和 Json 相互转换序列化反序列化

Golang basic_leaming结构体和 Json 相互转换序列化反序列化

golang的序列与反序列化

Golang中的自定义json序列化

Golang---序列化和反序列化