Go语言 Marshal 序列化和反序列化
Posted 张志翔ۤ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言 Marshal 序列化和反序列化相关的知识,希望对你有一定的参考价值。
最近项目中有看到使用 Marshal,大概查了一下是做 Json 序列化和反序列化的,特此记录便于日后查阅。
package main
import (
"fmt"
"encoding/json"
)
func test1(){
m := map[string]interface{} {"name":"taoge", "age":30, "addr":"China"}
fmt.Println(m)
data, _ := json.Marshal(m)
fmt.Println(string(data))
m1 := make(map[string]interface{})
_ = json.Unmarshal(data, &m1)
fmt.Println(m1)
}
func test2(){
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Addr string `json:"addr"`
}
p1 := Person{
Name: "taoge",
Age: 30,
Addr: "China", // oh my god, this comma cannot be omitted
}
fmt.Println(p1)
data, _ := json.Marshal(p1)
fmt.Println(string(data))
var p2 Person
_ = json.Unmarshal(data, &p2)
fmt.Println(p2)
}
func main() {
test1()
fmt.Println("-------------")
test2()
}
结果:
map[name:taoge age:30 addr:China]
{"addr":"China","age":30,"name":"taoge"}
map[addr:China age:30 name:taoge]
-------------
{taoge 30 China}
{"name":"taoge","age":30,"addr":"China"}
{taoge 30 China}
简单, 不需要说。
到此 Go语言 Marshal 序列化和反序列化介绍完成。
以上是关于Go语言 Marshal 序列化和反序列化的主要内容,如果未能解决你的问题,请参考以下文章