将protobuf.js类型转换为自定义格式

时间:2019-01-16 09:54:31

标签: protobuf.js

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

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

0 个答案:

没有答案