gpt4 book ai didi

thrift - 如何在 Apache Thrift 中表示可以具有多种类型的值?

转载 作者:行者123 更新时间:2023-12-04 10:54:53 28 4
gpt4 key购买 nike

是否有可能使用 Thrift 来表示诸如 Java 类型 Map 之类的东西,其中 Map 中的值是已知的,例如是字符串还是整数?

换句话说,是否有任何方法来表示实际基类型仅在运行时已知但保证是一组预先已知的类型之一的值。

有没有可以做到这一点的高性能序列化的替代方案?

我目前正在使用 JSON 和 Java 和 Python 中必要代码的手动实现,但最好以更有序的方式解决这个问题。

最佳答案

Thrift 要求你指定一个类型。该类型可以是结构类型,如 structunion ,但它必须是一种类型:

union Anything {
1: string s
2: i64 i
3: double d
}

service foo {
Anything bar(1: Anything anyArg)
}

但是,如果您打算使用 JSON 并以某种方式将该 JSON 数据包装到 Thrift 消息中,那么您可能想要使用 string .另一方面,如果您只交换这样的 JSON 字符串,例如
service foo {
string bar(1: string json)
}

那么在某种程度上,这会引发一个问题,Thrift 是否适合这项工作。它可能仍然是,但你自己负责 JSON 序列化/反序列化......

关于thrift - 如何在 Apache Thrift 中表示可以具有多种类型的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59269146/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com