`
jindw
  • 浏览: 508868 次
  • 性别: 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开源包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上百实例源码以及开源项目源代码

    支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,...

    vue练习:vue+element ui搭建页面,axios get请求值

    &lt;el-table-column prop="date" label="日期"&gt;&lt;/el-table-column&gt; &lt;el-table-column prop="name" label="姓名"&gt;&lt;/el-table-column&gt; &lt;el-table-column prop="address" label="地址"&gt;&lt;/el-table-column&gt; &lt;/el-table...

    vue-worktitle日历项目

    在“vue-worktitle日历项目”中,Vue.js被用来创建一个实用的日历应用,结合了worktitle的概念,为用户提供了一个方便的日程管理工具。 首先,我们来看`webpack.config.js`。Webpack 是一个模块打包器,它能够将...

    vue2.0结合Element-ui实战案例

    - **json-server**:模拟后端API,提供本地数据服务,支持CRUD操作,简化开发过程。 在页面搭建过程中,首先需要安装Element-UI: ```bash npm install element-ui -S ``` 然后在`main.js`中引入并注册: ```...

    基于jquery日历价格、库存等设置插件

    - **数据交互**:通常,插件的数据来源是后端服务器,可以接收并发送JSON格式的数据,方便与后台系统进行数据交换。 **2. 使用步骤** - **引入依赖**:首先需要引入jQuery库以及插件的CSS和JS文件。例如: ```...

    JQuery文档插件资料

    - **$.ajax()**: 进行异步请求的核心函数,支持GET、POST等多种HTTP方法,可以处理JSON、XML、HTML等多种数据格式。 - **$.extend()**: 合并两个或更多对象,常用于扩展jQuery对象或自定义插件。 - **$.each()**:...

    老师整理的extjs学习笔记

    - **Utilities (工具)**: 包括一系列辅助函数和工具类,如日期处理、动画效果等。 ##### 如何引用 为了在项目中使用 ExtJS,需要在 HTML 文件中通过 `&lt;script&gt;` 标签引入相应的 JS 文件。可以通过以下方式下载最新...

Global site tag (gtag.js) - Google Analytics