package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string
Age int
Address string
}
// json序列化-结构体
func testStruct() {
person := Person{
Name: "宋江",
Age: 20,
Address: "北京",
}
data, err := json.Marshal(person)
if err != nil {
fmt.Println("struct序列化失败,错误信息:", err)
} else {
fmt.Println("struct序列化成功,json=", string(data))
}
}
// json序列化-map
func testMap() {
var a map[string]interface{}
a = make(map[string]interface{})
a["Name"] = "武松"
a["Age"] = 21
a["address"] = "河北清河"
data, err := json.Marshal(a)
if err != nil {
fmt.Println("map序列化失败,错误信息:", err)
} else {
fmt.Println("map序列化成功,json=", string(data))
}
b := make(map[int]Person)
b[0] = Person{
Name: "武松",
Age: 21,
Address: "河北清河",
}
b[1] = Person{
Name: "李逵",
Age: 23,
Address: "山东",
}
data1, err := json.Marshal(b)
if err != nil {
fmt.Println("map-struct序列化失败,错误信息:", err)
} else {
fmt.Println("map-struct序列化成功,json=", string(data1))
}
}
// json序列化-切片
func testSlice() {
var slice []map[string]interface{}
var m1 map[string]interface{}
m1 = make(map[string]interface{})
m1["Name"] = "林冲"
m1["Age"] = 21
m1["Address"] = "河北"
slice = append(slice, m1)
var m2 map[string]interface{}
m2 = make(map[string]interface{})
m2["Name"] = "鲁智深"
m2["Age"] = 28
m2["Address"] = "甘肃"
slice = append(slice, m2)
data, err := json.Marshal(slice)
if err != nil {
fmt.Println("slice序列化失败,错误信息:", err)
} else {
fmt.Println("slice序列化成功,json=", string(data))
}
}
func main() {
testStruct()
testMap()
testSlice()
}