概述

Hutool-json


为何集成

JSON在现在的开发中做为跨平台的数据交换格式已经慢慢有替代XML的趋势(比如RestFul规范),我想大家在开发中对外提供接口也越来越多的使用JSON格式。

不可否认,现在优秀的JSON框架非常多,我经常使用的像阿里的FastJSON,Jackson等都是非常优秀的包,性能突出,简单易用。Hutool开始也并不想自己写一个JSON,但是在各种工具的封装中,发现JSON已经不可或缺,因此将json.org官方的JSON解析纳入其中,进行改造。在改造过程中,积极吸取其它类库优点,优化成员方法,抽象接口和类,最终形成Hutool-json。

介绍

Hutool-json的核心类只有两个:

  • JSONObject
  • JSONArray这与其它JSON包是类似的,与此同时,还提供一个JSONUtil工具类用于简化针对JSON的各种操作和转换。除了核心类,还提供了一些辅助类用于实现特定功能:

  • JSONSupport Bean类继承此对象即可无缝转换为JSON或JSON字符串。同时实现了toString()方法可将当前对象输出为JSON字符串。

  • XML 提供JSON与XML之间的快速转换,同时JSONUtil中有相应静态封装。
  • JSON JSONObject和JSONArray共同实现的接口类,JSONUtil.parse方法默认返回此对象(因为不知道是JSON对象还是JSON数组),然后可以根据实际类型判断后转换对象类型。与FastJSON类似,JSONObject实现了Map接口,JSONArray实现了List接口,这样我们便可以使用熟悉的API来操作JSON。

在JSON中,Hutool封装了getXXX方法,支持大部分内置类型的值获取操作。比如:

  1. JSONObject json1 = JSONUtil.createObj();
  2. json1.getStr("key");
  3. json1.getInt("key");
  4. json1.getLong("key");
  5. json1.getDouble("key");
  6. json1.getBigDecimal("key");

这些成员方法的加入,可以省掉大量的类型转换代码,大大提高JSON的操作简便性。