1. 开发工具
vs code 安装插件 vscode-proto3 v0.5.5
.
2. 安装protoc
2.1 Protocol Buffers v21.9
找对应自己的操作系统的.
2.2 配置, 在 .zshrc
, .bash_profile
, .bash_rc
根据自己的情况, 在执行命令对应的脚本配置文件里面添加 :
export PATH="$PATH":"$HOME/.pub-cache/bin"
添加完成后, 记得重新进入命令交互界面(或者执行一下bash
, zsh
…).
2.3 安装 dart 的 protoc_plugin
flutter pub global activate protoc_plugin
flutter pub add protobuf
flutter pub add fixnum
3. 定义 .proto
文件
生成 .dart
文件:
protoc -I=$SRC_DIR --dart_out=$DST_DIR $SRC_DIR/your_proto_file.proto
例如:
protoc -I=./proto --dart_out=./model ./proto/xxx.proto
4. 使用
- 注意: 如果有嵌套, 属性A的属性B的默认值是常量, 不能修改, 但是可以对属性A 赋值.
writeToJsonMap
转换成 json map, key 是 proto 中的序号, Map 类型writeToJson
转换成 json, key 是 proto 中的序号, String 类型toProto3Json
转换成普通的 json, Object 类型(其实是Map). 可以使用jsonEncode
转换成 json 字符串writeToBuffer
序列化, 实例调用fromBuffer
对 buffer 反序列化, 类调用fromJson
对 json 反序列化, 类调用
如果 fromJson
用不了, 可以使用以下方式:
var xx = SomeClass.create()..mergeFromProto3Json(jsonDecode(jsonString));