项目中需要使用json格式进行传输,json的序列化与反序列化
go的json解析需要使用encoding/json包
序列化,也就是由结构体转化为json string字符串。使用json.Marshal函数。
反序列化,就是将json string字符串转化为结构体。使用函数json.Unmarshal函数完成。

package main

import (
	"encoding/json"
	"fmt"
)
// 如果`json:"code"`去掉.会以字段名称为解析内容
type Result struct {
	Code    int    `json:"code"`
	Message string `json:"msg"`
}

func main() {
	var res Result
	res.Code    = 200
	res.Message = "success"

	//序列化
	jsons, errs := json.Marshal(res)
	if errs != nil {
		fmt.Println("json marshal error:", errs)
	}
	fmt.Println("json data :", string(jsons))

	//反序列化
	var res2 Result
	errs = json.Unmarshal(jsons, &res2)
	if errs != nil {
		fmt.Println("json unmarshal error:", errs)
	}
	fmt.Println("res2 code:", res2.Code)
    fmt.Println("res2 msg:", res2.Message)
}

运行结果如下: