C ++ Protobuf到/从JSON转换[关闭]

     2023-02-22     171

关键词:

【中文标题】C ++ Protobuf到/从JSON转换[关闭]【英文标题】:C++ Protobuf to/from JSON conversion [closed] 【发布时间】:2011-10-23 21:16:15 【问题描述】:

是否有人熟悉将 protobuf 消息与 JSON 相互转换的稳定 C++ 解决方案(库、代码 sn-p 等)?

【问题讨论】:

protobuf 消息 它们自己 并没有足够的信息;我只是反序列化成一个对象模型(protobuf),然后序列化(你选择的 json 引擎)……虽然我不使用 C++,所以我不知道那里可用的确切选项(轻而易举)使用 protobuf-net,但是:不同的平台) 非常感谢你的想法,马克。这肯定会节省很多时间。我也在考虑试试protobuf的反射机制。希望其中一种方法能奏效:) 我认为使用 protobuf 的反射机制是一种从 JSON 到 protobuf 生成类型的通用 JSON 序列化器/解析器的好方法。我做了这样的事情,但是在code.google.com/p/corbasim 中生成了 CORBA IDL 类型 另见***.com/q/2544580/545127 protobuf v3 支持 JSON,见***.com/a/44291335/757777 【参考方案1】:

这个更好 IMO:https://github.com/shramov/json2pb

它进行双向转换并处理扩展

【讨论】:

【参考方案2】:

pbjson 是另一个,它建立在 rapidjson 之上,可能更快。

【讨论】:

这个对我有用。我尝试了json2pbfirst 并且很难让它工作(并且在文档中几乎没有发现)。让这个pbjson 工具与他们的测试示例一起工作我没有遇到太多麻烦,我发现编辑他们的测试驱动程序来解析我的数据只需要一点点努力。 顺便说一句,这个pbjson 工具的作者说他们从pb2json 中汲取了灵感。【参考方案3】:

我已经为 protobuf 生成的类型创建了一个 JSON 解析器的引导实现,使用它的反射机制,并调整了我之前为 CORBA IDL 生成的类型所做的解析。

您可以在http://corbasim.googlecode.com/svn/trunk/protobuf2json_exported.zip找到它

通过这种方式,对于每个 protobuf 定义的消息,您将能够通过以下方式解析其实例:

Foo foo;

const std::string json_foo = "\"text\": \"Hello world\"";

protobuf2json::json::parse(foo, json_foo);

这只是一个初步的实现,它只支持字符串字段,但很容易实现各种字段。

【讨论】:

【参考方案4】:

pb2json 是另一个可以做到这一点的 C++ 库。

【讨论】:

protobuf从入门到“顺手”(代码片段)

...3.1.json与message转换4.更多详情和大神帖参考很多项目采用Protobuf进行消息的通讯,还有基于Protobuf的微服务框架GRPC,最近在使用一些框架的时候,顺手梳理了一下protobuf的一些语言特性和一些实用技巧。全文基于最新pro... 查看详情

protobuf从入门到“顺手”(代码片段)

...3.1.json与message转换4.更多详情和大神帖参考很多项目采用Protobuf进行消息的通讯,还有基于Protobuf的微服务框 查看详情

protobuf从入门到“顺手”(代码片段)

...3.1.json与message转换4.更多详情和大神帖参考很多项目采用Protobuf进行消息的通讯,还有基于Protobuf的微服务框 查看详情

Java:JSON -> Protobuf & 反向转换

】Java:JSON->Protobuf&反向转换【英文标题】:Java:JSON->Protobuf&backconversion【发布时间】:2015-04-1704:45:53【问题描述】:我有一个现有系统,它在GUI和服务器之间使用基于protobuf的通信协议。现在我想添加一些持久性,但目... 查看详情

JSON到XML转换的Java实现[关闭]

】JSON到XML转换的Java实现[关闭]【英文标题】:JavaimplementationofJSONtoXMLconversion[closed]【发布时间】:2010-10-0805:46:57【问题描述】:是否有现有的JAR可用于从JSON转换为XML?【问题讨论】:Underscore-java库有静态方法U.jsonToXml(json)。它是... 查看详情

有没有办法在 protobuf-net 代理类中定义替代转换函数(从/到接口)

】有没有办法在protobuf-net代理类中定义替代转换函数(从/到接口)【英文标题】:Isthereawaytodefinealternativeconversionfunctions(from/tointerfaces)inaprotobuf-netsurrogateclass【发布时间】:2013-10-0314:26:07【问题描述】:使用protobuf-netv2build668,我... 查看详情

如何将数据从 JSON 文件传输到 PHP? [关闭]

】如何将数据从JSON文件传输到PHP?[关闭]【英文标题】:HowcanItransferdatafromJSONfiletoPHP?[closed]【发布时间】:2017-05-0801:01:51【问题描述】:我的JSON文件是这样的"A":["Apple"],"B":["Ball"],"C":["Cat"],"D":["Dog"],"E":["Elephant"],"F":["Frog"],"G":["Got"]... 查看详情

JSON Schema 到 GraphQL 模式转换器 [关闭]

】JSONSchema到GraphQL模式转换器[关闭]【英文标题】:JSONSchematoGraphQLschemaconverters[closed]【发布时间】:2016-11-1507:39:22【问题描述】:是否有任何适配器将JSONSchema模式(例如从Swagger)转换为GraphQL模式?甚至还有一篇关于环绕RESThttp:/... 查看详情

使用 Jackson 将 protobuf 转换为 JSON?

】使用Jackson将protobuf转换为JSON?【英文标题】:ConvertaprotobuftoJSONusingJackson?【发布时间】:2019-01-0609:32:56【问题描述】:使用Jackson的ObjectMapper将protobuf转换为JSON时出现以下错误:com.fasterxml.jackson.databind.exc.InvalidDefinitionException:Dir... 查看详情

将 JSON 文件转换为 Pandas 数据 [关闭]

】将JSON文件转换为Pandas数据[关闭]【英文标题】:ConvertingJSONfiletoPandasdata[closed]【发布时间】:2021-09-0911:31:03【问题描述】:到目前为止,我还没有处理过JSON文件,我必须解决从包含大量信息的巨大JSON文件中过滤一些数据的要... 查看详情

如何将 NSString 从 JSON 转换为 NSDictionary? [关闭]

】如何将NSString从JSON转换为NSDictionary?[关闭]【英文标题】:HowconvertaNSStringfromJSONtoNSDictionary?[closed]【发布时间】:2014-02-1409:56:18【问题描述】:最终编辑解决方案:解决问题的代码:-(void)atacarAbogadosabogados=[[[NSArrayalloc]init]autorele... 查看详情

从 JSON 转换数组中的列 [关闭]

】从JSON转换数组中的列[关闭]【英文标题】:TransformcolumnsinArrayfromJSON[closed]【发布时间】:2021-12-3019:38:01【问题描述】:我有一个包含以下数据的表格。IDDESCRIPTIONCOLUMN1COLUMN2COLUMN31TESTE1X1X2X32TESTE2X1X2X33TESTE3X1X2X34TESTE4X1X2X35TESTE5X1X2X3... 查看详情

protobuf-net 端口到 .net core 2.0 [关闭]

】protobuf-net端口到.netcore2.0[关闭]【英文标题】:protobuf-netportto.netcore2.0[closed]【发布时间】:2017-10-0101:26:45【问题描述】:我需要.netcore2.0上的google协议缓冲区。我知道官方的googleprotobuffer实现在.netcore2.0上不可用,但是protobuf-net... 查看详情

Firebase JSON 到 CSV 的转换 [关闭]

】FirebaseJSON到CSV的转换[关闭]【英文标题】:FirebaseJSONtoCSVconversion[closed]【发布时间】:2020-11-0501:31:54【问题描述】:如何将导出的JSONfirebase实时数据库文件转换为可查看的excel格式。这是我的JSON数据示例在任何情况下,我都不... 查看详情

如何将元素从 json 显示到表格视图? [关闭]

】如何将元素从json显示到表格视图?[关闭]【英文标题】:howtodisplayelementsfromjsontotableview?[closed]【发布时间】:2013-09-1106:31:07【问题描述】:我是iphone开发新手,我有一个json响应,例如:-`(0=1;1=Pradeep;2="<null>";3="<null>";"f... 查看详情

golang中使用消息名称创建protobuf消息

golang中根据protobufmessagename动态实例化protobuf消息,消息内容通过输入json文件指定 背景:  项目中使用protobuf作为rpc调用协议,计划用golang实现一个压测工具,希望能够指定messagename和json动态的构建protobuf消息;从json解... 查看详情

从资源中读取json文件并将其转换为JAVA中的json字符串[关闭]

】从资源中读取json文件并将其转换为JAVA中的json字符串[关闭]【英文标题】:ReadjsonfilefromresourcesandconvertitintojsonstringinJAVA[closed]【发布时间】:2020-04-2719:49:45【问题描述】:我在我的代码中硬编码了这个JSON字符串。Stringjson="\\n"+"\... 查看详情

C++ 无法从枚举转换为 LPCTSTR [关闭]

】C++无法从枚举转换为LPCTSTR[关闭]【英文标题】:C++cannotconvertfromenumtoLPCTSTR[closed]【发布时间】:2014-06-0511:17:14【问题描述】:我在VisualStudio中编译游戏源代码,编译时发现一些错误。错误C2440:“正在初始化”:无法从\'eKind\'... 查看详情