c++中的Java反序列化
Java deserialization in C++
我正在研究一个必须处理各种消息类型的C++
应用程序。其中一种是serialized Java objects
(没有可用的源)。
我想知道是否有人知道沿jdeserialize
行c++库?
对于那些不熟悉它的人来说,jdeserialize基本上是解析序列化的对象并构建一个图。它做得很好,我一直在试验它——使用JNI来管理与主程序的交互。
这可以正常工作,但是很麻烦。我担心保养起来会很麻烦。
Java ABI与c++ ABI不兼容,所以您不能这样做。对象在内存中以不同的方式表示(这绝对不是唯一重要的区别,但应该足够了)。
我认为最好的方法是先用Java编写代码,然后将代码转换为c++。为了更快地开始,首先借鉴java的知识,逐步实现,并模拟一些特性(不需要反序列化ArrayList)。也许@user888379提到的Jdeserialize源代码就可以了。无论哪种方式,您可能也想在Java中反序列化对象,以便与c++代码进行结构比较。
我将在绑定JNI的JVM中对其进行反序列化,然后使用Java方法将数据转换为c++程序所需的格式。Java和c++之间有足够多的区别,即使你可以直接在c++中做,你也必须模拟Java环境的一个很好的块来理解数据。
序列化的Java对象很少是单个对象,它们经常成为相关对象的"网络",就像包含Map的对象一样,使用许多字符串作为键,这些字符串引用谁知道什么作为值。这只是一个嵌入属性
相关文章:
- 如何知道QDataStream不能反序列化某些内容
- 增强基于 XML class_id的反序列化
- 提升反序列化对象具有 nan 或 -nan 值
- 如何在 c++ 非托管代码中反序列化 byte[] 的 json 字符串?
- 如何反序列化数组?
- Protobuf中重复字段的问题.使用重复字段进行序列化/反序列化的更好方法是什么?
- 通过 tcp 发送 C# 类并在 C++ 上反序列化
- 序列化和反序列化boost共享指针
- 在C++中使用POCO和grain对多个对象进行反序列化
- C++中整数向量的序列化/反序列化
- 使用 Json 转换器反序列化 WCF 服务中的C++字符串
- 使用 QDataStream 对原始数据进行反序列化
- 使用协议缓冲区创建通用反序列化程序
- 如何在C++中从头开始反序列化文件(没有库)
- 在协议缓冲区 c++ 中反序列化字符串数组
- 在进程的内存中序列化/反序列化
- 谷物/C++ 11 - 如何指定反序列化的可选参数
- c++中的Java反序列化
- 在Java中反序列化从c++通过JNI传递的protobuf ByteArray
- 不能在Java中反序列化来自c++的protobuf数据