Go语言——Json的序列化代码示例

package main

import (
	"fmt"
	"encoding/json"
)

func testStruct(){    //结构体-->json
	type Students struct{
		Name string
		Age int
		Id string
		Score float32
	}
	stu := Students{
		Name : "Lucy",
		Age : 24,
		Id : "1001",
		Score : 90.5,
	}
	data,err := json.Marshal(&stu)
	if err != nil{
		fmt.Printf("json序列化错误!Error:%v",err)
	}
	fmt.Println(string(data))

}

func testSlice()  {      //切片-->json
	var slice []map[string]interface{}
	var m1 map[string]interface{}
	m1 = make(map[string]interface{})
	m1["name"] = "Jack"
	m1["age"] = 25
	m1["salary"] = 5000.0
	slice = append(slice,m1)

	var m2 map[string]interface{}
	m2 = make(map[string]interface{})
	m2["name"] = "Frank"
	m2["age"] = 24
	m2["salary"] = 10000.0
	slice = append(slice,m2)

	data,err := json.Marshal(slice)
	if err != nil{
		fmt.Printf("json序列化错误!Error:%v",err)
	}
	fmt.Println(string(data))
}

func testMap(){         // map-->json
	var a map[string]interface{}
	a = make(map[string]interface{})
	a["name"] = "Tom"
	a["age"] = 26
	a["address"] = "New York"
	data,err := json.Marshal(a)
	if err != nil{
		fmt.Printf("json序列化错误!Error:%v",err)
	}
	fmt.Println(string(data))
}

func main()  {
	testStruct()
	testMap()
	testSlice()
}

1. {“Name”:“Lucy”,“Age”:24,“Id”:“1001”,“Score”:90.5}
2. {“address”:“New York”,“age”:26,“name”:“Tom”}
3. [{“age”:25,“name”:“Jack”,“salary”:5000},{“age”:24,“name”:“Frank”,“salary”:10000}]

注意以下形式的代码(可以任意指定json形式的键的名称)

package main

import (
	"fmt"
	"encoding/json"
)

func testStruct(){    //结构体-->json
	type Students struct{
		Name string `json:"name"`
		Age int  `json:"age"`
		Id string  `json:"id"`
		Score float32   `json:"score"`
	}
	stu := Students{
		Name : "Lucy",
		Age : 24,
		Id : "1001",
		Score : 90.5,
	}
	data,err := json.Marshal(&stu)
	if err != nil{
		fmt.Printf("json序列化错误!Error:%v",err)
	}
	fmt.Println(string(data))
}
func main()  {
	testStruct()
}

{“name”:“Lucy”,“age”:24,“id”:“1001”,“score”:90.5}

发布了113 篇原创文章 · 获赞 51 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_38883271/article/details/104798757