2

在我的 protobuf 架构中,我有一个包含二进制数据的类型(已经在现有架构中定义,我无法更改它):

// message BinaryKey { bytes data = 1; }

let BinaryKey = new Type('BinaryKey')
BinaryKey.add(new Field('data', 1, 'bytes'))

在我的应用程序 JSON 中,我有此字段/类型的人类可读字符串格式,并希望将此字符串用于传递给encode(). 在字符串和二进制格式之间拥有encode()和使用自定义转换函数的正确方法是什么?decode()

我的代码的完整示例(使用 protobuf.js 反射):

let BinaryKey = new Type('BinaryKey')
BinaryKey.add(new Field('data', 1, 'bytes'))

let Message = new Type('CustomMessage')
Message.add(new Field('balance', 1, 'uint32'))
Message.add(BinaryKey)
Message.add(new Field('bin_key', 2, 'BinaryKey'))

let object = { balance: 100, bin_key: '<String representation>' }; // <-- *** pass in the data as a string to be converted
Message.encode(object).finish();

我需要在我的字符串格式和架构的二进制字段之间指定转换函数,但不知道如何将这些添加到我的Type( BinaryKey)

4

0 回答 0