![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang序列化与反序列化
文章平均质量分 54
磨镜台
牢骚太盛防肠断,风物长宜放眼量。
展开
-
JSON
在Go中,JSON转化前后的数据类型映射关系如下: 布尔值->布尔类型 浮点数和整形->常规数字 UTF-8字符串->Unicode字符集的字符串,特殊字符比如<会转义成\u003c 数组和切片->数组,但[]byte会转化为Base64编码后的字符串,slice类型零值会转化为null 结构体->JSON对象,只有大写原创 2018-07-27 20:19:02 · 197 阅读 · 0 评论 -
大端法和小端法
大端法和小端法指的是字节在内存中存储时的排列规则大端法常用于网络Big-endian高存低:高字节的数据存放在内存低位地址上数据: 0xaabbccdd内存低到高的顺序:aa bb cc dd两个16进制数为一个字节golang版代码 var i uint32 i = 0xAABBCCDD buf := make([]byte, 4) binary.BigEndian....原创 2019-05-24 21:13:38 · 1060 阅读 · 0 评论 -
protobuf在ubuntu安装配置
下载protobufgit clone https://github.com/protocolbuffers/protobuf.git安装protobuf安装依赖工具$ sudo apt-get install autoconf automake libtool curl make g++ unzip libffi-dev -y进入protobuf文件cd protobuf...原创 2019-05-28 20:19:28 · 229 阅读 · 0 评论 -
protobuf使用
编译生成对应的go文件在pb/文件夹下创建文件Person.proto,注意写分号。//当前版本信息syntax = "proto3";//后期生成的go文件所在的包package pb;定义个protobuf协议message Person { string name = 1; //顺序1 int32 age = 2; //循序2 repeated string ema...原创 2019-05-29 19:32:40 · 126 阅读 · 0 评论 -
protobuf语法
protobuf语法protobuf 通常会把用户定义的结构体类型叫做一个消息,这里我们遵循惯例,统一称为消息。protobuf 消息的定义(或者称为描述)通常都写在一个以 .proto 结尾的文件中。消息类型syntax = "proto3"; //指定版本信息,不指定会报错package pb; //后期生成go文件的包名//message为关键字,作用为定义一...原创 2019-06-09 20:10:55 · 598 阅读 · 0 评论 -
binary序列化与反序列化
binary性能一般,使用简单,适合定长的数据,例如bool, int8, uint8, int16, float32, complex64, ...或者数组、包含定长成员变量的结构体。有性能需求建议使用protocol buffer性能比较:protocol buffer > binary > gob> json序列化 var n uint64 n = 500 b...原创 2019-06-27 21:08:23 · 701 阅读 · 0 评论 -
gob序列化与反序列化
gobgob 支持变长类型编解码性能对比:protocol buffer > gob > binary > json结构体序列化时,需要序列化的字段需要首字母大写。序列化type People struct { Name string Age uint64 Pid *int //可以序列化指针类型}func Serialize() { pid := ne...原创 2019-06-27 21:36:50 · 651 阅读 · 0 评论