首页/新闻资讯/正文详情

protobuf-format-cj 快速开始:5分钟从编译构建到第一个 Protobuf JSON 序列化示例

发布时间:2026/9/24 16:27:47 来源:云帆数科 栏目:资讯中心
protobuf-format-cj 快速开始:5分钟从编译构建到第一个 Protobuf JSON 序列化示例
protobuf-format-cj 快速开始5分钟从编译构建到第一个 Protobuf JSON 序列化示例【免费下载链接】protobuf-format-cj根据 protobuf 数据提供不同格式的序列化项目地址: https://gitcode.com/Cangjie-TPC/protobuf-format-cjprotobuf-format-cj是仓颉Cangjie生态中的开源序列化库可以把protobuf 数据一键序列化成 JSON、XML、HTML、CouchDB 四种格式。本文带你用 5 分钟完成从依赖准备、cjpm build编译构建到运行第一个Protobuf JSON 序列化示例的完整流程新手也能轻松上手。一、protobuf-format-cj 是什么一句话理解它让 protobuf 消息对象直接变成人类可读的文本格式方便调试、日志输出或接口联调。支持格式对应实现类典型场景JSONJsonFormatAPI 联调、日志排查XMLXmlFormat兼容传统系统HTMLHtmlFormat浏览器直接查看CouchDBCouchDBFormat文档数据库存储四种格式都继承自 src/protobuf_formatter.cj 定义的抽象类ProtobufFormatter接口统一换格式只需换一个类名这也是它5分钟上手的关键。二、环境准备一个依赖搞定⚠️ 本项目已在Cangjie Version 1.0.0下验证通过。protobuf-format-cj 依赖protobuf4cj库。克隆本仓库后先克隆并构建依赖git clone https://gitcode.com/Cangjie-TPC/protobuf-format-cj cd protobuf-format-cj # 克隆依赖库并编译 git clone https://gitcode.com/Cangjie-TPC/protobuf4cj.git cd protobuf4cj cjpm build cd .. # 将构建完成的 protobuf 文件夹复制到项目根目录依赖来源在 cjpm.toml 中声明protobuf与charset4cj两个 git 依赖。三、一键编译构建依赖就位后在项目根目录执行cjpm buildcjpm会根据 cjpm.toml 中的name protobuf_format、output-type dynamic等配置完成构建产物输出到target目录。看到编译无报错说明构建成功。✅四、第一个 Protobuf JSON 序列化示例示例基于 test/LLT/proto/route_guide.proto 定义的经典Point消息经纬度坐标点需要与其数据类文件 test/LLT/proto/route_guide.pb.cj 一起编译执行。核心逻辑只有 4 步完整代码见 test/DOC/Example01Test.cj创建Point对象并赋值latitude 1、longitude 10实例化JsonFormat()格式化器调用json.print(a, out)写入输出流从ByteBuffer中取出结果字符串执行后输出结果为{latitude:1,longitude:10}测试断言通过终端打印[ PASSED ] CASE: Example01Test恭喜你第一个 Protobuf JSON 序列化示例跑通了 最小用例参考 test/LLT/proto/pb2json.cj。五、3 行切换 XML / HTML / CouchDB得益于统一的ProtobufFormatter接口换格式只改一个构造let f XmlFormat() // XML let f HtmlFormat() // HTML let f CouchDBFormat() // CouchDB同一组数据的不同输出效果摘自测试断言格式输出示例XMLPointlatitude1/latitudelongitude10/longitude/PointHTMLhtml...spanlatitude/span: span1/span...CouchDB{latitude: 1,longitude: 10}对应自测用例pb2xml.cj、pb2html.cj、pb2cdb.cj。另外src/format_factory.cj 中的FormatFactory.createFormatter(...)支持按枚举值动态创建格式化器适合需要运行时切换格式的场景。六、项目结构速览目录/文件说明src/库源码四种格式实现、工具类、异常定义doc/feature_api.md完整 API 接口文档推荐精读test/DOC/文档示例用例本文示例来源test/LLT/自测用例与 proto 数据文件README.md项目说明与编译指南更多接口细节字符集设置、printToString快捷方法、HexUtils/TextUtils工具类等请查阅 doc/feature_api.md。七、常见问题FAQQ1编译报错找不到 protobuf 依赖确认已将protobuf4cj构建产物复制到项目根目录下再重新cjpm build。Q2需要哪个仓颉版本Cangjie1.0.0见 cjpm.toml 中cjc-version配置。Q3想自己扩展一种新格式怎么办继承 src/abstract_char_based_formatter.cj 中的AbstractCharBasedFormatter重写print方法即可。Q4项目协议是什么基于 BSD 3-Clause 开源协议见 LICENSE可自由使用与参与贡献。 现在你已经掌握了 protobuf-format-cj 的完整上手路径克隆仓库 → 准备 protobuf4cj 依赖 →cjpm build→ 四步写出 JSON 序列化。接下来不妨打开 doc/feature_api.md把它变成你项目中第一个调试利器【免费下载链接】protobuf-format-cj根据 protobuf 数据提供不同格式的序列化项目地址: https://gitcode.com/Cangjie-TPC/protobuf-format-cj创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Wand-Enhancer新手指南:给WeMod客户端打上本地补丁的5步教程
Wand-Enhancer新手指南:给WeMod客户端打上本地补丁的5步教程

Wand-Enhancer新手指南:给WeMod客户端打上本地补丁的5步教程 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 给WeMod打补丁这件事&… · 2026/9/24 16:27:47

EMQX A2A Registry 命名空间格式化修复解析:HTTP API 中全局命名空间如何以 `null` 呈现
EMQX A2A Registry 命名空间格式化修复解析:HTTP API 中全局命名空间如何以 `null` 呈现

后端物联网消息队列通信 【免费下载链接】emqx The most scalable and reliable MQTT broker for AI, IoT, IIoT and connected vehicles 项目地址: https://gitcode.com/gh_mirrors/em/emqx 点击查看 免费下载 A2A(Agent-to-Agent)Registry… · 2026/9/24 16:27:41

主库宕机,切换要30秒?业务全挂!我手搓了人大金仓“秒级故障转移”高可用集群,附Java应用防抖终极指南
主库宕机,切换要30秒?业务全挂!我手搓了人大金仓“秒级故障转移”高可用集群,附Java应用防抖终极指南

摘要:本文基于人大金仓 KingbaseES V9,从物理层、数据库层、应用层三道防线,详解企业级高可用集群的部署与 Java 应用端“秒级无感”故障转移方案。目标读者为 DBA、运维工程师及 Java 后端开发者。阅读后可掌握 Keepalived VIP 漂移、同步流复制、防脑裂探针及 HikariCP 多… · 2026/9/24 16:27:41

WeChatMsg:免费开源,五分钟把微信聊天记录导出成文档,顺带生成年度报告
WeChatMsg:免费开源,五分钟把微信聊天记录导出成文档,顺带生成年度报告

WeChatMsg:免费开源,五分钟把微信聊天记录导出成文档,顺带生成年度报告 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https:… · 2026/9/24 17:04:55

RT-Thread 在先楫 HPM6P00EVK(RISC-V 双核)上的 BSP 移植与快速上手实战指南
RT-Thread 在先楫 HPM6P00EVK(RISC-V 双核)上的 BSP 移植与快速上手实战指南

操作系统嵌入式物联网嵌入式OSRTOS 【免费下载链接】rt-thread RT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/ 项目地址: https://gitcode.com/gh_mirrors/rt/rt-thread 点击查看 免费下载 本篇技术… · 2026/9/24 17:04:55

【Dify】YouTube全自动内容生成与多平台分发应用
【Dify】YouTube全自动内容生成与多平台分发应用

自媒体视频内容的生产和分发,已成为内容创业与个人品牌塑造的重要途径。高效的视频自动化处理工具,能够显著提升内容制作与运营的效率。 本文聚焦于YouTube及多平台自媒体场景,介绍一个覆盖从素材导入、音频转写、语义分析、文案生成、分段整理到成品分发的全流程工作流。通… · 2026/9/24 17:04:43

Kubernetes 云原生 CI/CD 落地实践:从 DevOps 到 GitOps 的持续构建与发布指南
Kubernetes 云原生 CI/CD 落地实践:从 DevOps 到 GitOps 的持续构建与发布指南

教程云原生容器编排 【免费下载链接】kubernetes-handbook Kubernetes 架构与生态:从云原生到 AI 原生基础设施的构建指南 项目地址: https://gitcode.com/gh_mirrors/ku/kubernetes-handbook 点击查看 免费下载 导读 本文以 kubernetes-handbook 仓库… · 2026/9/24 17:04:31

Presto Release 0.178 版本解读:内存治理、SQL 能力扩展与 Connector 稳定性改进
Presto Release 0.178 版本解读:内存治理、SQL 能力扩展与 Connector 稳定性改进

大数据数据库后端 【免费下载链接】presto The official home of the Presto distributed SQL query engine for big data 项目地址: https://gitcode.com/gh_mirrors/pre/presto 点击查看 免费下载 本文以 Presto 官方发布说明 release-0.178.rst 为骨架&#xff… · 2026/9/24 17:04:31

handy4cj邮箱与手机号校验实战:RFC 2822标准验证背后的简单原理
handy4cj邮箱与手机号校验实战:RFC 2822标准验证背后的简单原理

handy4cj邮箱与手机号校验实战:RFC 2822标准验证背后的简单原理 【免费下载链接】handy4cj 项目地址: https://gitcode.com/Cangjie-SIG/handy4cj handy4cj 是一个基于仓颉语言的实用工具库,内置 checkEmail 邮箱校验函数(严格遵循 R… · 2026/9/24 17:04:25

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码