有关如何支持repeated
消息的任何建议?具体来说,如果这些消息都是一种类型。在JSON中,这些本质上是一个数组。在我的情况下,我不关心索引,但这并不是说数组类型对protobuf没用。我考虑过以下方法,但我没有'像权衡一样。通过阅读Google文档,我们无法明确哪种方法可用于收藏。
使用任何现有消息,只有一堆空字段
您可以使用现有类型,只包含所需的重复邮件集合。因此,如果用户消息类型具有重复的照片消息类型,则发送一个只有照片集合字段的空用户。
创建包装类型
这就是#1的作用,但不是使用现有类型,而是创建一个新类型。这是一个更清洁,因为它是明确的,并没有使用空字段。还有消息输入。在照片的情况下,这将是一个只有重复照片消息字段的ArrayOfPhotos消息。
使用分隔流
对于这种方法不太确定,因为我还没有尝试过,但是protobuf支持分隔流。这看起来很酷,但我认为它有不太强的打字的缺点。 Streams可以包含不同消息类型的抓包。
虽然此选项不需要额外的消息类型,但看起来很有用。
在照片的情况下,这将是分隔的照片消息,但同样,您似乎也可以抛出用户消息。
答案 0 :(得分:0)
听起来,当您的顶级数据是数组而不是记录时,您正在尝试询问该怎么做。 (你的问题并不完全清楚你是否在询问顶层,但我不明白这个问题。)
要问自己的问题是:
在任何情况下,我都不建议使用解决方案#1。