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),仅供参考
企业数字化 ERP 产品动态
相关推荐
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
WeChatMsg:免费开源,五分钟把微信聊天记录导出成文档,顺带生成年度报告 WeChatMsg:免费开源,五分钟把微信聊天记录导出成文档,顺带生成年度报告 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https:… · 2026/9/24 17:04:55
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全自动内容生成与多平台分发应用 自媒体视频内容的生产和分发,已成为内容创业与个人品牌塑造的重要途径。高效的视频自动化处理工具,能够显著提升内容制作与运营的效率。
本文聚焦于YouTube及多平台自媒体场景,介绍一个覆盖从素材导入、音频转写、语义分析、文案生成、分段整理到成品分发的全流程工作流。通… · 2026/9/24 17:04:43
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 为骨架ÿ… · 2026/9/24 17:04:31
handy4cj邮箱与手机号校验实战:RFC 2822标准验证背后的简单原理 handy4cj邮箱与手机号校验实战:RFC 2822标准验证背后的简单原理 【免费下载链接】handy4cj 项目地址: https://gitcode.com/Cangjie-SIG/handy4cj
handy4cj 是一个基于仓颉语言的实用工具库,内置 checkEmail 邮箱校验函数(严格遵循 R… · 2026/9/24 17:04:25
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44