java - 如何使用 piqi 定义通过 Java 从 C++ 读取 JSON 数据

标签 java c++ protocol-buffers thrift protostuff

我们使用第 3 方 REST 网络服务,该服务使用 piqi 模式定义其 json API。我们当前的体系结构需要通过 Java 客户端读取此数据并将其传输到 C++ 二进制文件。理想情况下,我希望生成所有 POJO 和 c++ 结构,以及数据转换(json->java、java->c++)逻辑。我一直在研究 protobuf、protostuff 和 thrift 的不同组合,但流程仍然存在差距。有人有建议吗?

最佳答案

皮奇作者在这里。第三方 API 提供商很可能使用 piqi-rpc 通过 HTTP API 公开 JSON .假设您拥有服务的最新 .piqi 定义,您就有机会以 Protocol Buffers 格式而不是 JSON 格式获取输出和/或发送输入数据。在 Java 和 C++ 中处理 Protobuf 比处理 JSON 容易得多也更可靠。

除非 API 提供者明确禁止使用 Protocol Buffer 作为输入/输出格式,否则您应该能够通过设置 Accept header (和 Content-Type对于输入参数)到application/x-protobuf,如here所述.我会尝试一下,看看它是否有效。如果没有,您可以要求提供商将其打开。

关于java - 如何使用 piqi 定义通过 Java 从 C++ 读取 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14268562/

相关文章:

c++ - 如何初始化 Protocol Buffer 中的重复元素?

javascript - 处理具有重复字段的消息

c++ - 继承中使用了哪个 protected 变量?

java - Protobuf RPC 在 Hadoop 2.2.0 单节点服务器上不可用?

java - 从文件系统查看 Eclipse Run As 配置

java - 有时在计划任务中没有任何内容打印到 servlet 的输出流

C++ 错误 : Undefined Symbol

c++ - VS10 C++ - fatal error LNK 1120

protocol-buffers - Google Protocol Buffer 错误 : "Encountered string containing invalid UTF-8 data while serializing protocol buffer"

java - 如何使用 sbt 在 java playframework 项目中导入 jetcd