• [Go] 使用protobuf进行序列化和反序列化


    先定义消息类型

    orders.proto

    syntax = "proto2";
    package message;
    message Orders {
    required int32 order_id=1;
    required string title=2;
    }

    在GOPATH创建目录和编译这个消息类型输出到该目录,包名是message

    mkdir $GOPATH/src/message;protoc --go_out $GOPATH/src/message orders.proto 

    编写go文件进行序列化和反序列化刚才生成的包里的类型结构体数据

    package main
    
    import "message"
    
    import "github.com/golang/protobuf/proto"
    
    import "fmt"
    
    func main() {
        orders := &message.Orders{
            OrderId: proto.Int32(1),
            Title:   proto.String("第一个订单"),
        }
        //序列化成二进制数据
        ordersBytes, _ := proto.Marshal(orders)
        //反序列化二进制数据
        twoOrders := &message.Orders{}
        proto.Unmarshal(ordersBytes, twoOrders)
        fmt.Println(twoOrders.GetTitle())
        fmt.Println(twoOrders.GetOrderId())
    
    }

  • 相关阅读:
    每日算法-02旋转矩阵
    广搜
    每日算法-01
    洛谷P1162填涂颜色
    队列
    知识网站复习
    mysql索引底层的数据结构和算法
    Java中的类反射
    常见的加密方式
    计算机数制和运算的一点总结.
  • 原文地址:https://www.cnblogs.com/taoshihan/p/11980253.html
Copyright © 2020-2023  润新知