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

结合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,好像不能兼容原生格式的序列化

相关推荐

Global site tag (gtag.js) - Google Analytics