今天中午看见
hjg1988的关于JSON工具性能测试的
帖子,手痒了,用来测试一下JSEL的JSON支持。
失望,性能确实不如jackson。不过相差也不大,而且JSEL至少还有一个简单的优势。
测试之后正好顺手,吧JSEL的JSON工具完善一下,发出来看看,如果能派上点用场那就最好不过了。
介绍一下优点吧:
1.
简单,超级简单
相比于其他JSON工具,JSEL的最大特点就是简单,编码解码一共就3个Java文件,我都不好意思单独打包了。
和JSEL+Lite模板运行环境一起打包也就是区区80几K。
2.
还是简单
他没有感染json.org官方实现的坏毛病。没有繁琐的自定义接口,充分利用Java本身的标准集合类,原始类型,JavaBean规范,描述JSON结构。编码解码只是一个静态方法调用即可完成(当能,你也可以创建编码解码器,定制更多高级功能)。
MyClass object = new MyClass();
String json= JSONEncoder.encode(object);
//直接解码为java标准集合
Map<String,Object> map = JSONDecoder.decode(json);
//自定义解码器
JSONDecoder decoder = new JSONDecoder(true);
//自动将JSON数据转化为制定类型的对象
MyClass result = decoder.decode(json,MyClass.class);
3.
自动类型转换
普通JavaBean都可以JSON化,JSON化的数据也可以自动转化为普通JavaBean。类型转化自动完成。
4.
支持日期类型
这不是标准的JSON数据类型,但是确实一个太常用的类型,常用到我都不好意思不支持了。
JSON 日期采用W3C的日期格式,序列化时默认采用醉完整的模式,确保不丢失数据,也允许用户自定义。
解码时,完全支持W3C的6种格式。解码器是手动编写的,比Java默认的SimpleDateFormat快大约2倍。
Year:
YYYY (eg 1997)
Year and month:
YYYY-MM (eg 1997-07)
Complete date:
YYYY-MM-DD (eg 1997-07-16)
Complete date plus hours and minutes:
YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)
Complete date plus hours, minutes and seconds:
YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
Complete date plus hours, minutes, seconds and a decimal fraction of a
second
YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)
日期支持详细介绍
5.
速度还不错
仅次于jackson 最优的缓存模式下的性能,和直接字符串拼接差别不大。
JSEL JSON 工具包没有单独的发布,目前都是和Lite模板系统一起打包的。
打包后文件大小为80k:
下载地址:
http://code.google.com/p/lite/downloads
分享到:
相关推荐
有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。 Java右键弹出...
容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...
容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...
容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...
容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...
容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...
容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...
容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...
容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...
容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...
容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...
容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...
容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...
容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...
有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。 Java右键弹出...