golang 每日一练 go语言的jsondecode和jsonencode

使用   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)
}


在线交流