当前位置: 首页 > 知识库问答 >
问题:

生成复杂Java对象的原型文件

阴永福
2023-03-14

我想序列化Internet上的一个复杂Java对象。第一次,我使用Google Gson来序列化这个类。Gson提供了一种将对象序列化为JSON字符串并通过toJson和fromJson从JSON字符串反序列化到对象的简单方法。然而,JSON字符串并不是很紧凑,在序列化字节[]数组时会带来很大的开销。

我正在阅读Google协议缓冲区。根据教程,用户必须手动为每条消息编写. proto文件。协议缓冲区似乎无法识别用户定义的类(Google协议缓冲区-用户定义的java对象作为消息字段)。我有两个问题:

  • 协议缓冲区是否知道内置的Java定义类,如BigDecimal、BigInteger等

是否有一个工具可以自动遍历Java类并生成。原型?

共有1个答案

邓正谊
2023-03-14

原型中有一个可能的类型列表。BigDecimal/Bigintger不是。您可以编写自己的转换步骤。https://developers.google.com/protocol-buffers/docs/proto

是的,您需要旅行并编写从/到java类和proto的映射。这是一个必要的步骤,不幸的是每个人都必须这样做。我认为没有自动化工具可以做到这一点。也许你可以写一个并开源它?:)

我认为,您需要的是从java类到protobuf消息的完整一对一映射。通常,这种映射很难以自动化的方式完成。此外,谷歌有意将protobuf限制为一种序列化协议,而不是像hibernate和spring那样的ORM。

 类似资料:
  • 我有一个SpringBoot应用程序,我正在使用springfox swagger生成API文档。 我有一个带有复杂嵌套对象的搜索endpoint 运行应用程序后,生成的文档如下所示 我可以帮助springfox为我的复杂对象生成文档吗?

  • 我试图从一个相当复杂的Java对象生成一个CSV文件。该对象是一个会话,具有一些属性,字符串和消息的列表,这些字符串和消息又具有一些属性,还有一个注释的列表,这些注释具有一些属性。 session类如下所示; 消息类如下所示; 事实上,开始认为(单一的)CSV可能不是解决这个问题的最佳方法。

  • 根据@Ryan Emerson的建议更新了我的代码,但我仍然没有看到任何自动生成的Impl文件和proto文件 著者班 书班 具有覆盖方法的上下文初始化器类 然后实例化上下文初始化器的ClassA 梅文 我仍然没有看到任何自动生成的原始文件。有人能告诉我我做错了什么吗?

  • 当我尝试使用Makefile命令生成proto文件时-,我得到这个错误- 当我运行which go时,我有: 哪个协议返回此- 下面是我的<代码>。zshrc看起来像: 我也安装了插件 请否则我应该添加我的以避免此错误吗?

  • 本文向大家介绍图文详解JavaScript的原型对象及原型链,包括了图文详解JavaScript的原型对象及原型链的使用技巧和注意事项,需要的朋友参考一下 对于新人来说,JavaScript的原型是一个很让人头疼的事情,一来prototype容易与__proto__混淆,二来它们之间的各种指向实在有些复杂,其实市面上已经有非常多的文章在尝试说清楚,有一张所谓很经典的图,上面画了各种线条,一会连接这

  • 我有一个golang结构,其中包含对其他结构的引用。有没有一种自动化的方法来生成。结构中的原始文件? 例如: 应生成: