protobuf 复杂数据类型定义

各位好,我在处理压缩的时候有一些复杂的数据类型
数组 [1,2,3,4...] 这种类型怎么定义
还有一种动态的对象,key为数字,value为object或者null, 对象的大小不确定。
例如: team = {1: {name:xx,age:xx}, 2:null, ...}类似的类型
看文档没有对于这种数据结构的定义,不知道各位如何处理。

标签: pomelo
tableman 在 2014-9-27 17:01发布 分享到 weibo
3 回复
#1 {1} fantasyni 2014-9-28 10:06 回复

1:数组的话

"option": "repeated"

记就成了

2:动态对象是不支持的,要么就弄成json字符串,到时候你再parse一下

tableman 2014-9-28 10:24 回复

好的,谢谢,看样子 对于这种还是需要额外处理, 对象转成 string,然后 用zlib 压缩,然后客户端在解析到路子了。

#2 {2} kilua 2014-9-28 13:57 回复

动态对象一般都可以用数组来替代,不必转成字符串

tableman 2014-9-28 15:14 回复

repeated 要求 类型一样吧?
而对象中 属性的类型也不一定完全 一样,比如 {1:{},2:null,....}
这样好似不能用数组来确定吧?

demon 2014-10-8 10:04 回复

@tableman 如果数组里面是对象的话,不是必要的属性就写成optional,这样里面的东西就要全部转成一个兼容的对象了。
如果对象属性都差很多的话,放到数组里也不合适的吧,这样的js代码也会有性能问题的

#3 {1} kilua 2014-10-3 14:03 回复

可以的。你可以试试,我一直都是这么做的

tableman 2014-10-21 16:48 回复

谢谢,我再研究下。

回到顶部