序列化与反序列化(GO实现)

GO序列化与反序列化

定义

序列化:把对象转化为可传输的字节序列的过程称为序列化

反序列化:把字节序列还原为对象的过程称为反序列化。

--

作为开发者,序列化和反序列化一直是我们老生常谈的问题,也是非常琐碎但是重要的知识点。对于序列化与反序列化,我这里强烈推荐一篇博客,你可以从中更加深入了解他们。

这里作为待补充部分,后面学习完RPC后会重新更新这部分内容。

这里仅提供go中最简单的序列化方式:

package main

import (
	"encoding/json"
	"fmt"
)

type Person struct {
	Name string `json:"name"`
	Age  int    `json:"age"`
}

func main() {
	// 创建一个 Person 结构体实例
	person := Person{Name: "Alice", Age: 30}

	// 将 Person 结构体序列化为 JSON 格式的字节切片
	jsonBytes, err := json.Marshal(person)
	if err != nil {
		fmt.Println("Failed to serialize:", err)
		return
	}

	// 打印 JSON 字符串
	fmt.Println("Serialized JSON:", string(jsonBytes))

	// 将 JSON 字符串反序列化为 Person 结构体
	var newPerson Person
	err = json.Unmarshal(jsonBytes, &newPerson)
	if err != nil {
		fmt.Println("Failed to deserialize:", err)
		return
	}

	// 打印反序列化后的 Person 结构体
	fmt.Println("Deserialized Person:", newPerson)
}

结果

Serialized JSON: {"name":"Alice","age":30}
Deserialized Person: {Alice 30}
posted @   AtongM  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示