`
jindw
  • 浏览: 500881 次
  • 性别: Icon_minigender_1
  • 来自: 初到北京
社区版块
存档分类
最新评论

JSEL的JSON工具添加日期格式支持

    博客分类:
  • Java
阅读更多
今天中午看见 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
分享到:
评论
1 楼 lqixv 2010-08-17  
简单看了一下你的 lite,并且下了 demo 来运行,没看明白

没敢花太多时间。因为现在的各种项目多如牛毛。

你能不能搞个简单点的 demo?

相关推荐

    JAVA上百实例源码以及开源项目

    有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。 Java右键弹出...

    java开源包1

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包11

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包2

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包3

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包6

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包5

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包10

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包4

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包8

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包7

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包9

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    java开源包101

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    Java资源包01

    容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展...

    JAVA上百实例源码以及开源项目源代码

    有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。 Java右键弹出...

Global site tag (gtag.js) - Google Analytics