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 相互转换序列化反序列化