使用 encoding/json 包进行 json编码和解码
package main
import (
"fmt"
"encoding/json"
"log"
)
type MyJson struct {
Id int
Name string
Score float64
}
func Jsondecode(jsonStr string,v interface{}) (interface{},error) {
err := json.Unmarshal([]byte(jsonStr),v)
return v,err
}
func Jsonencode(obj interface{}) (string,error) {
bb,err := json.Marshal(&obj)
if err != nil {
return "",err
}
return string(bb),nil
}
func main(){
jObj := map[string]interface{} {
"id":1,
"name":"张三",
"score":5.3,
}
json1,_ := Jsonencode(jObj)
//打印 {"id":1,"name":"张三","score":5.3}
fmt.Println(json1)
var p1 map[string]interface{}
Jsondecode(json1,&p1)
//打印 map[id:1 name:张三 score:5.3]
fmt.Println(p1)
jObj2 := MyJson{2,"lisi",6.3}
json2,err := Jsonencode(jObj2)
if err != nil {
log.Println(err)
}
//打印 {"Id":2,"Name":"lisi","Score":6.3}
fmt.Println(json2)
p2 := new(MyJson)
Jsondecode(json2,p2)
//打印 {2 lisi 6.3}
fmt.Println(*p2)
}