该类库实现了对象的快速序列化/反序列化,专门为java语言打造,后续会支持其它语言。
- 小巧,序列化后的字节流占用空间比protostuff小,平均为kyro的三分之二大小
- 处理速度快,序列化/反序列化综合速度为protostuff的1.5倍
- API调用方便
- 支持循环引用
- 支持java的所有类型,包括枚举、多维数组
- 支持没有无参构造方法的类
- 无侵入设计,使用中无需做任何其它配置,只需序列化方/反序列化方类属性的顺序相同
- 线程安全
- 支持序列化/反序列化的时候类属性不完全一致,但是要求反序列化的时候定义的类属性必须包含序列化时定义的类属性,可以新增属性,新增属性要求在原有属性末尾添加
Demo:
ByteArrayOutputStream output = new ByteArrayOutputStream();
//序列化对象
Serial.write(originalValue,output);
output.close();
ByteArrayInputStream input = new ByteArrayInputStream(output.toByteArray());
Object obj = null;
try {
//反序列化
obj = Serial.read(input);
} catch (Exception e) {
e.printStackTrace();
}finally {
input.close();
}
git地址: https://github.com/lujintao2000/serial_pro
相关推荐
protostuff 是一个支持各种格式的一个序列化Java类库,包括 JSON、XML、YAML等格式。示例代码:public class UserSchema implements Schema { public boolean isInitialized(User user) { return...
在本篇中,我们将深入探讨如何使用DotNetty框架实现自定义协议,并结合MessagePack库进行数据序列化。 DotNetty是一个高性能、异步的网络应用程序框架,它为开发人员提供了构建TCP、UDP、HTTP、WebSocket等协议服务...
3. **速度与效率**: Protostuff设计的目标之一就是高性能,其序列化和反序列化速度较快,内存占用低,适合大数据处理和实时系统。 4. **流式处理**: Protostuff支持流式序列化,允许你逐字段地处理对象,这对于...
jboss Marshalling序列化类库的打包,版本是1.3.0的,里面包含源码,共4个jar jboss-marshalling-1.3.0.CR9.jar jboss-marshalling-1.3.0.CR9-sources.jar jboss-marshalling-serial-1.3.0.CR9.jar jboss-...
Protostuff作为一个轻量级的序列化库,提供高效的序列化和反序列化性能,同时保持代码简洁和易于使用。 2. ** Protostuff支持的数据格式** - **JSON (JavaScript Object Notation)**:一种轻量级的数据交换格式,...
C#序列化 序列化为对象 从二进制文件中反序列化 序列化为soap 即xml 反序列对象 从xml序列中反序列化 调用示例 文件化XML序列化 文件化XML反序列化 文本化XML序列化 文本化XML反序列化 SoapFormatter序列化 ...
Protostuff是一个轻量级、高性能的序列化框架,它允许开发者将对象转换为字节流,以便存储或在网络上传输。在Java开发中,序列化是一个常见的需求,特别是在网络通信、持久化存储或者跨进程通信等场景下。Protostuff...
4. **自定义序列化行为**:通过实现`JsonConverter`接口,你可以自定义对象的序列化和反序列化过程,以满足特定需求,比如忽略某些属性、处理复杂类型等。 5. **LINQ to JSON**:提供了一套类似LINQ的API,使得...
Protostuff还支持自定义序列化策略,允许你控制哪些字段参与序列化,以及如何处理序列化过程中的异常。此外,它也提供了强大的流式处理能力,可以方便地处理大数据。 标签中的“protostuff”进一步强调了这个工具的...
4. **反序列化支持**:除了将C#对象序列化为PHP可读的格式,类库还可能包含反序列化的功能,即接收PHP序列化的数据并还原为C#对象。 5. **性能优化**:为了提高效率,类库可能进行了性能优化,比如缓存序列化结果,...
除了基本的序列化之外,.NET框架还提供了一些高级特性,如版本控制(处理类结构更改时的兼容性问题)、数据合同(用于WCF服务的数据交换)和序列化回调方法(如`OnSerializing`和`OnDeserialized`),这些允许开发者...
1. 复杂类型的处理:除了基本类型外,还可以序列化和反序列化自定义类、结构体以及容器(如vector、map等)。对于自定义类型,通常需要重载`operator和`operator>>`,或者使用nlohmann/json库中的`to_json`和`from_...
`protostuff`、`fastjson`和`gson`就是三个流行的Java序列化库,它们各自具有独特的特性和优势。 首先,让我们详细了解一下这三个库: 1. **protostuff**: - Protostuff是一个非常快速且灵活的序列化框架,它...
这些漏洞通常利用了类库中的特性和设计缺陷,例如默认的信任所有反序列化数据,或者没有充分验证输入数据的类型和内容。 **针对JBoss、WebLogic和WebSphere的安全考虑**: 1. **JBoss**:这是一个开源的应用服务器...
此外,由于Protostuff支持多种序列化格式,所以你还可以选择将数据转换成JSON或XML存储,以适应不同的应用场景。 Protostuff的使用方法通常包括以下几个步骤: 1. 定义数据模型:在Java或C#中定义你需要序列化的类...
3. **高性能**:Protostuff设计时考虑了性能,其序列化和反序列化速度较快,内存占用较低,尤其适合大数据处理和高并发环境。 4. **代码生成**:尽管支持动态编译,但Protostuff也提供了一个代码生成器,可以在编译...
`DECLARE_SERIAL`宏声明类为可序列化的,`IMPLEMENT_SERIAL`宏则实现具体的序列化逻辑。在类中,重载`Serialize`函数,该函数会自动调用以保存或加载对象状态。 3. **存档操作** 对象的序列化和反序列化通过`和`>>...
同时,它被形容为比 Google 的 Protocol Buffers(protobuf)更简单易用,这可能是因为 Protostuff 的API设计更加直观,或者它支持更多的序列化和反序列化格式。 **标签解析:** - **protostuff**:这是我们要讨论...
通过《VC++6.0类库参考手册》,初学者不仅可以理解MFC的基本概念,还能学习到实际编程中的技巧和最佳实践。虽然VC++6.0现在已有些许过时,但MFC的许多原理和方法仍然适用于更新的版本,如Visual Studio 2019中的MFC...
3. **IMPLEMENT_SERIAL宏**:在类的实现部分,使用`IMPLEMENT_SERIAL`宏来指定你的类的序列化类(通常是`CObject`)以及序列化版本号。这个宏实现了实际的序列化操作。 4. **serialize成员函数**:在你的类中,你...