pb协议内容转json格式输出_简单包会看这一篇就够了

场景: Kafka很多时候的消息输出都是Pb格式的,不方便构造json数据进行测试;另外,前端开发有时需要将 proto类型文件转成json文件,因此找到了一种方法,可以直接将pb协议内容转为json格式并输出内容。
1.安装nodejs
(1)官网下载  Node.js
(2)配置环境变量
(3)cmd执行npm --version检验是否安装成功
2.安装protobufjs和protobufjs-cli
npm -g install protobufjs
npm -g install protobufjs-cli
3. 将pb文件转为json文件
pbjs -t json D:/work/STM/message.proto >  D:/work/STM/message.json
转换前:
转换后:
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSONPB是指将JSON格式的数据换为Protobuf(PB)的数据结构和格式。对于C语言,可以使用相应的PB库来完成这个换过程。 首先,需要将JSON数据解析成一个C语言的结构体,然后根据PB消息定义,将解析出的数据赋值给对应的PB字段。 其次,需要使用PB库提供的函数将结构体的数据序列化成二进制的PB格式。这个过程中,PB库会自动根据PB消息定义对数据进行编码,生成二进制的PB消息。 最后,将生成的二进制数据写入文件或通过网络传输等方式进行存储或传输。 以下是一个简单的C语言示例代码,展示从JSON换为PB的过程: ```c #include <stdio.h> #include "pb_decode.h" // PB解码库 #include "pb_encode.h" // PB编码库 #include "my_message.pb.h" // PB消息定义 void json_to_pb(const char* json_data) { // 解析JSON数据到C语言结构体 MyMessage my_message = MyMessage_init_zero; pb_istream_t json_input = pb_istream_from_buffer(json_data, strlen(json_data)); pb_decode(&json_input, MyMessage_fields, &my_message); // 将C语言结构体数据序列化为PB格式 uint8_t pb_buffer[128]; pb_ostream_t pb_output = pb_ostream_from_buffer(pb_buffer, sizeof(pb_buffer)); pb_encode(&pb_output, MyMessage_fields, &my_message); // 将PB格式数据写入文件或传输 // ... printf("换成功!\n"); } int main() { const char* json_data = "{\"name\":\"Alice\",\"age\":20}"; json_to_pb(json_data); return 0; } ``` 上述代码中,假设已定义了一个名为`MyMessage`的PB消息,并包含名为`name`和`age`的字段。`json_data`为待换的JSON数据。通过调用`json_to_pb`函数实现JSONPB换。最后输出提示信息表示成功换。 需要注意的是,上述代码仅为参考示例,实际使用时需要根据具体的PB消息定义和PB库的使用方式进行相应的修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值