文章目录

  • Protocol Buffers和JSON相互转换
    • 下载安装protojson
    • 创建protobuf消息
    • 编译生成go文件
    • 创建main.go文件

Protocol Buffers和JSON相互转换

下载安装protojson

go get google.golang.org/protobuf/encoding/protojson

创建protobuf消息

syntax = "proto3";option go_package = "./;blog";package blog;message User{int32 uid =1;string uname = 2;int32 age = 3;
}message Article{int32 aid = 1;string title = 2;int32 views = 3;
};

编译生成go文件

protoc --go_out=./blog ./blog/*.proto

创建main.go文件

package mainimport ("fmt""pro02/blog""google.golang.org/protobuf/encoding/protojson"
)func main() {article := &blog.Article{Aid:   1,Title: "protobuf for golang",Views: 100,}// message 转换成 jsonjsonString := protojson.Format(article.ProtoReflect().Interface())fmt.Printf("jsonString: %v\n", jsonString)// json 转换成 messagemessage := article.ProtoReflect().Interface()protojson.Unmarshal([]byte(jsonString), message)fmt.Printf("m: %v\n", message)
}

运行结果:

[Running] go run "e:\golang开发学习\protobuffer\src\pro02\main.go"
jsonString: {"aid":  1,"title":  "protobuf for golang","views":  100
}
m: aid:1  title:"protobuf for golang"  views:100[Done] exited with code=0 in 1.435 seconds

Protocol Buffers和JSON相互转换相关推荐

  1. JSON与Protocol Buffers的一些比较

    转载来源:http://www.cnblogs.com/zhubo/archive/2011/07/06/JSON_And_ProtocolBuffers.html JSON与Protocol Buf ...

  2. 还在用JSON? Google Protocol Buffers 更快更小 (原理篇)

    欢迎关注微信公众号「随手记技术团队」,查看更多随手记团队的技术文章.转载请注明出处 本文作者:丁同舟 原文链接:mp.weixin.qq.com/s/cyOHe1LS-- 背景 随手记客户端与服务端交 ...

  3. Protocol Buffers简明教程

    随着微服务架构的流行,RPC框架渐渐地成为服务框架的一个重要部分.在很多RPC的设计中,都采用了高性能的编解码技术,Protocol Buffers就属于其中的佼佼者.Protocol Buffers ...

  4. 架构师之路 — 分布式系统 — Protocol Buffers 序列化协议

    目录 文章目录 目录 Protocol Buffers 序列化协议 定义数据结构 序列化传输 Protocol Buffers 序列化协议 Protocol Buffers 是一种高性能的.语言无关的 ...

  5. 序列化--反序列化:Schema evolution in Avro, Protocol Buffers and Thrift

    当想要数据, 比如对象或其他类型的, 存到文件或是通过网络传输, 需要面对的问题是序列化问题 对于序列化, 当然各个语言都提供相应的包, 比如, Java serialization, Ruby's ...

  6. Go 支持Protocol Buffers的配置

    Go 支持Protocol Buffers的配置 安装 protoc (The protocol compiler)是由C++写的,支持的 C++.Java.Python.Objective-C.C# ...

  7. Protocol Buffers 在 iOS 中的使用

    翻译自:Introduction to Protocol Buffers on iOS 对大多数的应用来说,后台服务.传输和存储数据都是个重要的模块.开发者在给一个 web service 写接口时, ...

  8. MessagePack, Protocol Buffers和Thrift序列化框架原理和比较说明

    第1部分messagepack说明 1.1messagepack的消息编码说明 为什么messagepack比json序列化使用的字节流更少, 可通过图1-1.图1-2有个直观的感觉. 图1-1mes ...

  9. spring 项目中集成 Protocol Buffers 示例

    http://blog.csdn.net/fangzhangsc2006/article/details/8687388 本文适用于了解spring框架,同时想在spring项目中使用Protocol ...

最新文章

  1. LAMP+Postfix+Dovecot+Postfixadmin搭建邮件管理系统(六)
  2. Knockout.js 学习 (六)-- 监控属性数组 applyBinding Observables
  3. idea下mapreduce的wordcount
  4. 简书自动上传工具出现多余空行的问题及解决方案
  5. 项目管理(2):管理过程二
  6. Redis07-对象结构体redisObject
  7. JavaScript中的内置对象(数组、Boolean、Number、字符串)和自定义对象
  8. hive concat_w实现将多行记录合并成一行
  9. python 判断 windows 隐藏文件/系统文件
  10. 台式计算机显示器的分辨率,台式电脑分辨率多少合适,测试电脑分辨率
  11. 江苏省徐州市谷歌高清卫星地图下载(百度网盘离线包下载)
  12. x265码率控制-VBV更新过程
  13. MD 的图片格式排版偏差的问题
  14. hash算法和常见的hash函数
  15. 猴子选大王(Java)
  16. 计算机备课组小结,计算机备课组工作总结
  17. 一个英语学渣是如何通过英语六级的
  18. ZLG 开源 GUI 引擎 AWTK 1.6 发布
  19. 平面设计师资格证怎么考
  20. 中国互联网移动互联网消费者分析

热门文章

  1. 数据库分类,市场上常见数据库
  2. 简单的计算机程序图,技巧:只需几个简单的步骤,即可使用Office工具离线识别图片文字...
  3. 这五个数据科学家和机器学习工程师油管博主,你必须关注
  4. 实验:使用SSMS创建并管理数据库及其基本表(代码版)
  5. 计算机学后感作文400,科技展观后感作文400字(精选7篇)
  6. Redis 查看端口使用情况
  7. 新版Vultr挂载自定义ISO安装Windows XP系统并开启远程桌面教程
  8. 网页前端实现五星好评效果
  9. Mobile按键对照表
  10. 2017四月TOP100电商类App排行榜出炉