Go语言 - JSON序列化/反序列化

Go使用json包的Marshal和Unmarshal进行json的序列化和反序列化。

json 序列化:

// 定义结构体
type Cat struct {
  Name string
  Age  int8
}
// 序列化
c := Cat{"Tom", 2}
bytes, err := json.Marshal(c)
if err != nil {
  fmt.Printf("erro >> %v", err)
}
fmt.Printf("json >> %v", string(bytes))
// 打印结果:
//json >> {"Name":"Tom","Age":2}

特别注意:结构体名称、字段名称需要大写。

json反序列化:

// 仍使用上面的结构体
jstr := `{"Name": "Tom1", "Age": 3}`
var jc Cat
err = json.Unmarshal([]byte(jstr), &jc)
if err != nil {
  fmt.Printf("erro >> %v", err)
}
fmt.Println(jc)
// 打印结果:
//{Tom1 3}

使用tag解决名称大写的问题:

type Cat struct {
  Name string `json:"name"`
  Age  int8   `json:"age"`
}

// 打印结果:
//json >> {"name":"Tom","age":2}
posted @ 2021-07-24 20:57  HiIT青年  阅读(376)  评论(0编辑  收藏  举报