
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),仅供参考