`
netcomm
  • 浏览: 141354 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

结合FastJSON的设计 + protocol buffer的协议的序列化组件

阅读更多
    由于温少开源的FastJSON非常优秀,但由于JSON本身协议是需要传输属性名等字符串的,这就使得它在java系统间作为通讯或磁盘存储的序列化方案,就显得不合适了。所以,结合FastJSON的设计 + protocol buffer做了个序列化小东西(glowworm)。
1.它的调用非常简单:
  TP tmpTP = new TP();
   … …
  // 序列化
  byte[] tmpBytes = PB.toPBBytes(tmpTP);
  // 反序列化
  TP tmpTP_2 = (TP)PB.parsePBBytes(tmpBytes, TP.class);
2.目前支持的类型包括:
Map, HashMap, LinkedHashMap, TreeMap, ConcurrentMap, ConcurrentHashMap, Collection, List, ArrayList, Object, String,char, Character, byte, Byte, short, Short, int, Integer, float, Float, double, Double, long, Long, boolean, Boolean,byte[], short[], int[], long[].class, float[], double[], boolean[], char[], Object[]
   作为早期版本,目前还不支持循环引用、引用、自定义输出格式等功能,但作为一个基本的二进制序列化工具,还是有它适用的场合。附件是jar包
分享到:
评论
8 楼 finallygo 2013-05-14  
aa87963014 写道
lz的这个开始用了,但是发现支持不是很好
找到了 Protostuff

现在在苦恼怎么根据javabean生成proto文件,我不想手写


我这里有一个根据javabean生成thrift文件的,如果你想实现proto版本的话,可以参考下:https://github.com/hongliuliao/thrift-generator
7 楼 netcomm 2013-03-27  
我们只是采用pb中部分协议,所以不能完整的兼容原生实现方式。
6 楼 aa87963014 2013-03-27  
我写了个简单的测试,然后用你的工具发现不能被原生实现方式 识别格式。
改用Protostuff 没问题。 之后就没怎么注意了。

现在我倒是比较需要一个反向生成proto文件的工具
5 楼 netcomm 2013-03-26  
"lz的这个开始用了,但是发现支持不是很好",具体什么问题,请明确指出,我们这边好修复。多谢!
4 楼 aa87963014 2013-03-26  
lz的这个开始用了,但是发现支持不是很好
找到了 Protostuff

现在在苦恼怎么根据javabean生成proto文件,我不想手写
3 楼 netcomm 2013-03-25  
开源在这 https://github.com/bigbully/glowworm。
2 楼 zhangyifan_614 2013-03-25  
lz,这个的应用场景,是否能举例说明下?
另外,可以开源么?
1 楼 aa87963014 2013-03-07  
lz,好像不能兼容原生格式的序列化

相关推荐

    FastJson反序列化

    [{"listA":[{"id":"fds","name":"张三"},{"id":"fds","name":"李四"}],"test":"432"}, {"listA":[{"id":"fds","name":"张三"},{"id":"fds","name":"李四"}],...数组里面封装数组的反序列化方法,通过两个bean,进行封装

    SpringBoot Redis配置Fastjson进行序列化和反序列化实现

    本篇将详细介绍如何在Spring Boot中配置Fastjson进行序列化和反序列化,以实现与Redis的高效交互。 Fastjson是阿里巴巴开发的一款高性能的JSON处理库,它提供了快速的序列化和反序列化能力,支持多种Java类型,包括...

    最新的fastjson工具包2.0.11+JSON序列化与反序列工具包

    支持泛型,支持流处理超大文本,支持枚举,支持序列化和反序列化扩展。侵删 因为在GitHub网站上加载的速度太慢了,先放到这里。

    springboot 使用spring cache缓存 和 使用fastjson配置redis系列化

    在本篇文档中,我们将探讨如何使用Spring Cache来缓存数据,并结合Fastjson配置Redis序列化,确保数据正确存储和读取。 首先,我们需要在`pom.xml`中添加必要的依赖。Spring Boot的`spring-boot-starter-cache`模块...

    fastjson1.2.69反序列化远程代码执行漏洞介绍.docx

    **Fastjson 1.2.69 反序列化远程代码执行漏洞详解** Fastjson 是阿里巴巴开源的一个高性能的 JSON 库,广泛应用于 Java 开发中,用于 JSON 的序列化和反序列化操作。然而,Fastjson 1.2.69 版本存在一个严重的反序...

    fastjson + gson + jsonlib + jacksonjar包

    Jackson的性能也非常高,同时支持注解,允许开发者通过注解自定义序列化和反序列化的行为。 这四个库各有优势,选择哪一个取决于具体的应用场景和需求。例如,如果需要高性能和简洁的API,Fastjson可能是最佳选择;...

    C#简单快速的json组件fastJSON使用介绍.docx

    fastJSON 是一个开源的 JSON 序列化组件,可以用于 C# 中对 JSON 数据的序列化和反序列化。它的主要特点是速度快、易于使用,并且支持多种数据类型。 fastJSON 的优点 fastJSON 的优点包括: * 快速序列化和反...

    Java四大json库gson+fastjson+jackson+json-lib

    Gson的优点在于其简单易用的API和强大的功能,支持自定义序列化和反序列化的策略。它对于复杂类型的处理非常友好,如泛型、枚举、日期等,而且无需额外配置,直接通过注解或反射机制进行操作。 2. Fastjson: ...

    fastjson、gson、jackson序列化和反序列化所用 json

    在IT行业中,JSON(JavaScript Object Notation)是一种广泛使用的轻量级数据交换格式,它易于人阅读和编写,...在实际编程中,我们可能需要根据文件内容的具体结构来设计对应的Java类,以便正确地反序列化JSON数据。

    fastjson和jackson序列化数据的区别

    fastjson和jackson序列化数据的区别直奔主题一言不合就上代码注意 直奔主题 1、fastjson将字符串反序列化为对象时,只会处理第一层,内部会序列化为JsonObject或者JsonArray,使用二级结构和三级结构时还要再次处理...

    fastjson+ajax+sppringmvc前后使用json传值的demo

    本示例“fastjson+ajax+sppringmvc前后使用json传值的demo”展示了如何利用这些技术进行高效的数据传输。以下是相关知识点的详细说明: 1. JSON:JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...

    SpringMvc+mybatis+fastJson+druid+resteasy...

    开发工具采用IDEA,用maven构建的项目,框架采用SpringMVC,数据库采用mysql与mybatis配合,数据格式采用阿里巴巴工具fastJson,数据源druid,另外还添加了resteasy中的功能

    protostuff fastjson gson 高性能序列化jar包

    - Protostuff是一个非常快速且灵活的序列化框架,它支持多种序列化协议,包括protobuf(Protocol Buffers)。其核心优势在于速度和内存效率,特别是在处理不可知的或者动态类型的数据时。 - Protostuff支持自定义...

    Fastjson工具进行JSON序列化

    JSON(Java Script Object ...重点说明了工具类fastjson 是怎么实现 JSON 的序列化和反序列化的。 首先你要确保在项目中已经添加了Fastjson的依赖包,否则需要手动添加。如果是Maven项目,可以在pom.xml中添加依赖;

    fastjson+json jar包

    除了基本的序列化和反序列化,Fastjson还提供了许多高级特性,如自定义序列化器、过滤特定字段、处理日期和时间等。例如,你可以通过实现`com.alibaba.fastjson.serializer.SerializerFeature`来定制序列化过程,...

    SpringMVC+fastjson+Swagger集成示例源码

    在IT行业中,SpringMVC、Fastjson和Swagger是三个非常重要的技术组件,它们分别用于构建Web应用程序、数据序列化和API文档化。本示例源码整合了这三个工具,为开发者提供了一个高效、易用的开发环境。让我们深入探讨...

    34_dubbo都支持哪些通信协议以及序列化协议?.zip

    标题 "34_dubbo都支持哪些通信协议以及序列化协议?" 暗示了我们即将探讨的是关于Dubbo框架在网络通信和数据序列化方面的内容。Dubbo是阿里巴巴开源的一个高性能、轻量级的Java服务治理框架,它为分布式应用提供了...

    fastjson1.2.8 反序列化远程代码执行漏洞

    astjson采用黑白名单的方法来防御反序列化漏洞,导致当黑客不断发掘新的反序列化Gadgets类时,在autoType关闭的情况下仍然可能可以绕过黑白名单防御机制,造成远程命令执行漏洞。经研究,该漏洞利用门槛较低,可绕过...

    序列化工具(Gson, Jackson, FastJson, ProtoBuf)

    ProtoBuf是Google开发的一种数据序列化协议,可以将结构化数据序列化为二进制格式,以便于存储和网络传输。相比于JSON和XML,ProtoBuf的数据体积更小,解析速度更快。`proto.exe`是ProtoBuf的编译器,它可以将....

    okhttp3+fastjson+识别身份证+生成自定义二维码.

    功能刚测试完毕,不知道什么原因审核不通过给我撤掉了,我上传的起码是亲测可用的吧,总比那些扣了积分下载的还不能用的强吧,功能部分登录进入主界面的扫一扫,二维码是自定义生成的,身份证识别是自定义相机图文...

Global site tag (gtag.js) - Google Analytics