golang 序列化、反序列化

小麦客 · · 2364 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。


// 序列化、反序列化
package main

import (
    "encoding/json"
    "fmt"
)

type person struct {
    Name string `json:"name"` //强制字段名小写
    Age int `json:"age"`
}

func main() {
    // 序列化 golang结构体 => JSON字符串
    p1 := person{
        Name:"小麦客",
        Age:666,
    }
    slice_of_byte, err := json.Marshal(p1) // json.Marshal(struct_obj)
    if err != nil{
        fmt.Printf("当前JSON对象的内容为%s,查看结构体字段是否大写\n", string(slice_of_byte))
    }else {
        fmt.Println(string(slice_of_byte))
    }

    // 反序列化 JSON字符串 => golang结构体
    json_str_obj := `{"Name":"麦子", "Age": 666}`
    p2 := person{} //准备一个结构体类型的变量, 结构反序列化的值
    //p2 := new(person)

    //err1 := json.Unmarshal(slice_of_byte, &p2)
    err1 := json.Unmarshal([]byte(json_str_obj), &p2) // json.Unmarshal(byte类型的切片, 指针类型的变量)
    if err1 != nil{
        fmt.Printf("error of %#v\n", err1)
    }
    fmt.Println(p2)
}

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:小麦客

查看原文:golang 序列化、反序列化

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2364 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传