protocol-buffers - Apache thrift,结构包含自身

标签 protocol-buffers thrift thrift-protocol

我正在研究数据序列化的节俭。但文档说

循环结构 - 结构只能包含在其之前声明的结构。结构体也不能包含自身

我们的要求之一是

  • 结构A
    • 子项目列表
      • 项目(项目是结构 A )

所以阅读要求我在任何级别都不能拥有 Struct ?我可以像上面那样将它放在循环模型中吗? Struct不是Struct直接的成员,但它有一些其他成员并且包含struct。

他们的文档描述性不太好。

Thrift 中可能吗? protobuf支持吗?

最佳答案

根据this discussion ,这在 Thrift 中是不可能的。但是,有一种解决方法,可以使用整数对主列表进行索引。本质上,这是穷人指点的一种形式。

struct A 
{ 
1: list<i32> subitems; 
}

struct AllAs 
{ 
1: list<A> items; 
} 

subitems 本质上是指向 AllAs.items 的指针列表

在 Protocol Buffers 中,这很简单:

message A {
    repeated A subitems = 1; 
}

关于protocol-buffers - Apache thrift,结构包含自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3011701/

相关文章:

c# - 'TProtocol' 不包含 'IncrementRecursionDepth' 的定义

cassandra::我可以创建一个没有主键的表吗?

c++ - 如何释放 Protocol Buffer 内存

java - Hiveserver2 没有响应

erlang - 从 erlang 插入 cassandra

json - Kafka Connect,获取 JsonConverter 的 Json Schema

thrift - 如何开始使用 Apache Thrift?

java - 如何通过给定的消息类型名称和原始字节获取 Java 对象的 protobuf?

Avro 与 Protobuf 的性能指标

Android NDK 未定义对 google protobuf 的引用