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}