Json序列化 指,将具有key-value(键 -> 值)结构的数据类型,例如:go语言中的map, slice,struct...序列化成json格式的字符串的操作。json是一种主流的数据传输格式,灵活轻便...
需要导入一个包 "encoding/json"
上代码
Golang - struct 结构体序列化代码段
//定义一个简单的结构体 Monster
type Monster struct {
Name string
Age int
Birthday string
Sal float64
Skill string
}
//写一个 testStruct()结构体的序列化方法
func testStruct() {
monster := Monster{
Name: "牛魔王",
Age: 500,
Birthday: "2019-10-27",
Sal: 10000.01,
Skill: "牛魔拳",
}
// 将Monster结构体序列化
data, err := json.Marshal(&monster)
if err != nil {
fmt.Printf("序列化错误 err is %v", err)
}
//输出序列化结果
fmt.Printf("monster序列化后 = %v", string(data))
}
Golang - map序列化代码段
// map序列化
func testMap() {
//定义一个map
var a map[string]interface{}
//使用map之前 必须make一下
a = make(map[string]interface{})
a["name"] = "红孩儿"
a["age"] = 18
a["address"] = "重庆洪崖洞"
// 将a map结构体序列化
data, err := json.Marshal(a)
if err != nil {
fmt.Printf("序列化错误 err is %v", err)
}
//输出序列化结果
fmt.Printf("map序列化后 = %v", string(data))
}
Golang - slice序列化代码段
// slice进行序列化
func testSlice() {
var slice []map[string]interface{} // 定义了一个切片,里面是map格式 map[string]interface{}
var m1 map[string]interface{} //定义切片中的第一个map M1
m1 = make(map[string]interface{})
m1["name"] = "Matt"
m1["age"] = 36
m1["address"] = [2]string{"重庆沙坪坝", "上海"}
slice = append(slice, m1)
var m2 map[string]interface{} //定义切片中的第2个map M2
m2 = make(map[string]interface{})
m2["name"] = "damon"
m2["age"] = 36
m2["address"] = "沙坪坝"
slice = append(slice, m2)
// 将slice进行序列化
data, err := json.Marshal(slice)
if err != nil {
fmt.Printf("序列化错误 err is %v", err)
}
//输出序列化结果
fmt.Printf("slice序列化后 = %v", string(data))
}
完整代码供参考
package main
import (
"encoding/json"
"fmt"
)
// Json序列化指,将具有key-value(键 -> 值)结构的数据类型,例如:go语言中的map, slice,struct...序列化成json格式的字符串的操作
//定义一个简单的结构体 Monster
type Monster struct {
Name string
Age int
Birthday string
Sal float64
Skill string
}
//写一个 testStruct()结构体的序列化方法
func testStruct() {
monster := Monster{
Name: "牛魔王",
Age: 500,
Birthday: "2019-10-27",
Sal: 10000.01,
Skill: "牛魔拳",
}
// 将Monster结构体序列化
data, err := json.Marshal(&monster)
if err != nil {
fmt.Printf("序列化错误 err is %v", err)
}
//输出序列化结果
fmt.Printf("monster序列化后 = %v", string(data))
}
// map序列化
func testMap() {
//定义一个map
var a map[string]interface{}
//使用map之前 必须make一下
a = make(map[string]interface{})
a["name"] = "红孩儿"
a["age"] = 18
a["address"] = "重庆洪崖洞"
// 将a map结构体序列化
data, err := json.Marshal(a)
if err != nil {
fmt.Printf("序列化错误 err is %v", err)
}
//输出序列化结果
fmt.Printf("map序列化后 = %v", string(data))
}
// slice进行序列化
func testSlice() {
var slice []map[string]interface{} // 定义了一个切片,里面是map格式 map[string]interface{}
var m1 map[string]interface{} //定义切片中的第一个map M1
m1 = make(map[string]interface{})
m1["name"] = "Matt"
m1["age"] = 36
m1["address"] = [2]string{"重庆沙坪坝", "上海"}
slice = append(slice, m1)
var m2 map[string]interface{} //定义切片中的第2个map M2
m2 = make(map[string]interface{})
m2["name"] = "damon"
m2["age"] = 36
m2["address"] = "沙坪坝"
slice = append(slice, m2)
// 将slice进行序列化
data, err := json.Marshal(slice)
if err != nil {
fmt.Printf("序列化错误 err is %v", err)
}
//输出序列化结果
fmt.Printf("slice序列化后 = %v", string(data))
}
func main() {
//结构体, map, slice进行序列化
testStruct()
testMap()
testSlice()
}
看结果
struct, map, slice 的json序列化结果
请注意
- 发表于 2020-01-09 22:22:44
- 阅读 ( 689 )
- 分类:前端