我想将一个协议(由grpc生成)转换为JSON。
我知道protobuf可以使用:JSonFormat
(https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/util/JsonFormat)但这并没有包含在Android系统中的protobuf-lite
(implementation'com.google.protobuf:protobuf-lite:3.0.0'
)中,它是Android系统中使用的protobuf-gradle插件
(https://github.com/google/protobuf-gradle-plugin/issues/276 )
还有别的选择吗?
我使用的是Kotlin,但因为grpc生成的protobuf是java的,所以我不能使用Kotlin(https://github.com/Kotlin/kotlinx.serialization/blob/master/docs/runtime_usage.md#protobuf )
有什么想法吗?
谢谢
好吧,我想我成功了,这就是我得到的解决方案,只要有人像我一样得到stack:
// GRPC
implementation "io.grpc:grpc-okhttp:${grpcVersion}" // CURRENT_GRPC_VERSION
implementation "io.grpc:grpc-stub:${grpcVersion}" // CURRENT_GRPC_VERSION
implementation "io.grpc:grpc-protobuf:$grpcVersion"
// Protobuf
implementation "com.google.protobuf:protobuf-java:$protobufVersion"
implementation "com.google.protobuf:protobuf-java-util:$protobufVersion"
protobuf {
protoc { artifact = "com.google.protobuf:protoc:$protobufVersion" }
plugins {
grpc {
artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}" // CURRENT_GRPC_VERSION
}
}
generateProtoTasks {
all().each { task ->
task.builtins {
java { }
}
task.plugins {
grpc { }
}
}
}
}
现在我可以使用JsonFormat:
val jsonPrinter = JsonFormat.printer().includingDefaultValueFields()
return jsonPrinter.print(myProtobufObject)
资料来源:
https://github.com/google/protobuf-gradle-plugin#protos-依赖关系https://github.com/grpc/grpc-java https://github.com/protocolbuffers/protobuf/tree/master/java
https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/util/JsonFormat
不幸的是,此解决方案与Android Oreo之前的解决方案不兼容:
https://github.com/protocolbuffers/protobuf/issues/6718
任何更新:
https://groups.google.com/forum/#!主题/协议/EC2TtPixCFY
正如问题所说,我从源代码编译了grpc,也做了,但是,grpc_python_plugin的
我是协议缓冲区和gRPC的新手。现在我正在尝试在Go中使用grpcgrpc-网关构建客户端/服务器架构。 我试着效仿一些例子,但最终总是遇到同样的问题。用protoc生成代码后,我运行go build,得到了这个错误: 这是go.mod: 这是: 这是指向存储库的链接:https://github.com/riccardopedrielli/grpc-gateway-test 我看到生成的go文件
是否有一个工具或库可以将PROBUFF对象映射到POJO。我想让pojo实现我无法使用PROBUFF对象实现的其他接口。或者我必须手动执行此转换?
问题内容: 我有以下代码。如何解决最后一行中的错误? 问题答案: 更新: 此问题已在Swift 1.2+(Xcode 6.3+)中修复。Xcode 6.3 beta发行说明说: 现在,只要没有关联类型,动态类型转换(“ as!”,“ as?”和“ is”)就可以使用Swift协议类型。 只能检查协议一致性(其包括,,和用) 协议。不是。 请参阅Swift书中的“ 检查协议一致性”部分。 注意 仅当
本文档作为 gRPC 在 HTTP2 草案17框架上的实现的详细描述,假设你已经熟悉 HTTP2 的规范。产品规则采用的是ABNF 语法 大纲 以下是 gRPC 请求和应答消息流中一般的消息顺序: 请求 → 请求报头 *有定界符的消息 EOS 应答 → 应答报头 *有定界符的消息 EOS 应答 → (应答报头 *有定界符的消息 跟踪信息) / 仅仅跟踪时 请求 请求 → 请求报头 *界定的消息 E
我正在android工作室中创建一个android应用程序(2.3.3)。我将要实现SAP HANA SQL数据库查询并显示图表。我创建了应用程序,试图包含ngdbc。jar文件有几种方式(1.添加为jar模块,2.添加为库(复制到libs文件夹中),3.项目结构,依赖项,添加了这个jar文件。),然而,我无法让它工作。我已导入java.sql.*;(可能很好,因为它不是红色或灰色) 在Class