在我的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
)