概述
为某个类型实现MarshalJSON()([]byte, error)和UnmarshalJSON(b []byte) error方法,那么该类型在序列化和反序列化时就会使用相应方法。
未自定义前代码:
package main
import (
"encoding/json"
"fmt"
"time"
)
type Student struct {
Name string `json:"name"`
Age int `json:"age"`
Weight float64 `json:"weight"`
Height float64 `json:"height"`
RecordTime time.Time `json:"recordtime"`
}
func main() {
s1 := Student{
Name: "jack",
Age: 20,
Weight: 61.5,
Height: 172.5,
RecordTime: time.Now(),
}
b, err := json.Marshal(s1)
if err != nil {
fmt.Printf("json.Marshal failed, err:%vn", err)
return
}
fmt.Printf("s1: %sn", b)
var s2 Student
err = json.Unmarshal(b, &s2)
最后
以上就是欣慰美女为你收集整理的golang-自定义json序列化和反序列化的全部内容,希望文章能够帮你解决golang-自定义json序列化和反序列化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复