标准json模块
一般可以使用json.Marsha1和json.Unmarsha1来序列化和反序列化字符串。
package main
import (
"encoding/json"
"fmt"
)
func main() {
//定义一个s1切片
s1 := []string{"chinese", "japan", "france", "italy"}
fmt.Println("原字符串:", s1)
s2, _ := json.Marshal(s1) //序列化,此时s2是字节,uint8类型
fmt.Println("序列化后的结果:", string(s2))
var s3 []string
json.Unmarshal([]byte(s2), &s3) //反序列化,这里不能直接用s3简短声明
fmt.Println("反序列化后的结果:", s3)
}
加上结构体:
package main
import (
"encoding/json"
"fmt"
)
type Phone struct {
//这里要大写,需要跨包到json包
Name string
Price int
}
func main() {
//初始化结构体
phone := Phone{
Name: "iphone",
Price: 5000,
}
//打印原字符
fmt.Println("结构体:", phone)
//序列化
s1, _ := json.Marshal(phone)
fmt.Println("序列化后的结果:", string(s1))
//反序列化
s2 := Phone{}
json.Unmarshal(s1, &s2)
fmt.Println("反序列化后的结果:", s2)
}