热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Go中将带有枚举的Protobuf3转换为JSON

如何解决《在Go中将带有枚举的Protobuf3转换为JSON》经验,为你挑选了1个好方法。

我怎么能转换grpc/ protobuf3消息,JSON其中enum表示为string

例如,protobuf消息:

enum Level {
    WARNING = 0;
    FATAL = 1;
    SEVERE = 2;
    ...
}

message Http {
    string message = 1;
    Level level = 2;
}

转换为:

j, _ := json.MarshalIndent(protoMessage, "", "\t")

至:

{
    "message": "Hello world!",
    "level": 2,
}

我希望得到:

{
    "message": "Hello world!",
    "level": "SEVERE",
}

谢谢



1> michaelbn..:

我发现我应该使用protobuf/jsonpb包装而不是标准json包装。

所以:

j, _ := json.MarshalIndent(protoMessage, "", "\t")

应该:

m := jsonpb.Marshaler{}
result, _ := m.MarshalToString(protoMessage)


推荐阅读
  • protobuf 3教程
    本文主要分享【protobuf3教程】,技术文章【4、protobuf进阶】为【无休止符】投稿,如果你遇到Go微服务实战-电商系统相关问题,本文相关知识或能到你。protobuf3教程目 ... [详细]
  • k8s入坑之路(14)scheduler调度 kubelet管理及健康检查
    kubelet主要功能Pod管理在kubernetes的设计中,最基本的管理单位是pod,而不是container。pod是kubernetes在容器上的一层封装,由一组运行在同一 ... [详细]
  • 可能会|人类_程序员架构修炼之道:如何设计“易理解”的系统架构?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了程序员架构修炼之道:如何设计“易理解”的系统架构?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • golang反射,golang反射性能
    本文目录一览:1、关于反射2、尝试用golan ... [详细]
  • 分布式服务框架和原理简章
    应用架构演进这里的架构演进应该是从服务化的角度来说,应该说随着业务发展,应用规模扩大,系统的一些公共服务就会抽取出来,独立开发,部署,维护,用来解决并发,扩展,维护的问题。传统垂直 ... [详细]
  • ETCD介绍—etcd概念及原理方面分析
    etcd作为一个受到ZooKeeper与doozer启发而催生的项目,除了拥有与之类似的功能外,更专注于以下四点。简单:基于HTTPJS ... [详细]
  • 本文介绍了在Python中使用gRPC的方法示例,分享给大家,具体如下:使用ProtocolBuffers的跨平台RPC系统。安装使用pi ... [详细]
  • 理解基于 TCP 的应用层通信协议
    TCP协议示意 TCP协议关于七层网络通信的基本原理,特别推荐这篇图文并茂的长文《TCPIP笔记–综述》TCP通信基本特征 TCP数据流特征1.消息(结构化数据)被编码成字节流写入 ... [详细]
  • grpcgolang在win7/8/10下的安装配置(别的系统同样适用)
    gRPC是由Google主导开发的RPC框架,使用HTTP2协议并用ProtoBuf作为序列化工具。支持多种语言,之所以采用golang,是因为其特点:C家族,程序员上手容易、动态 ... [详细]
  • 我正在尝试从官方的Google字体存储库中解析一个METADATA.pb文件,该文件可在以下位置找到: ... [详细]
  • golang基础-protobuf使用,Go语言社区,Golang程序员人脉社 ... [详细]
author-avatar
000000
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有