json类库有:1、FastJson;2、Json-lib;3、Gson;4、Jackson。Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中非常快的JSON库。
1、FastJson
Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中非常快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。
主要特点:
- 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)
- 强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)
- 零依赖(除了JDK没有依赖其它任何类库)
maven依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<!--(起码1.2.48以上)因为这个版本以下存在漏洞-->
<version>版本根据自己需要</version>
</dependency>
fastjson常用API:
fastjson API 入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本
public static final Object toJSON(Object javaObject); //将JavaBean转换为JSONObject或者JSONArray。
2、Json-lib
apache提供的json-lib小工具,它可以方便的使用Java语言来创建JSON字符串。也可以把JavaBean转换成JSON字符串。
json-lib的核心jar包有:
- json-lib.jar
json-lib的依赖jar包有:
- commons-lang.jar
- commons-beanutils.jar
- commons-logging.jar
- commons-collections.jar
- ezmorph.jar
json-lib的两个核心类:
- JSONObject;
- JSONArray;
JSONObject的父类其实就是Map;JSONArray的父类其实就是List。它们俩都都添加了一个toString()方法。用来转换成json字符串。
JSONObject实例:
public static void function1() {
JSONObject map = new JSONObject();
map.put("name", "veeja");
map.put("age", 18);
map.put("sex", "male");
System.out.println(map.toString());
}
输出:
{"name":"veeja","age":18,"sex":"male"}
JSONArray实例:
public static void function3() {
JSONArray jsonArray = new JSONArray();
Person p1 = new Person("aaa", 21, "male");
Person p2 = new Person("bbb", 18, "female");
jsonArray.add(p1);
jsonArray.add(p2);
System.out.println(jsonArray.toString());
}
输出:
[{"age":21,"name":"aaa","sex":"male"},{"age":18,"name":"bbb","sex":"female"}]
3、Gson
Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。而JSON(JavaScriptObject Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,广泛应用于各种数据的交互中,尤其是服务器与客户端的交互。
引入依赖:
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
Gson库特点:
- 易于使用:Gson API提供了一个高级外观,以简化常用用例。
- 无需创建映射:Gson API为要序列化的大多数对象提供了默认映射。
- 性能:Gson相当快并且内存占用少。它适用于大型对象或系统。
- 干净的JSON:Gson创建了干净且紧凑的JSON结果,易于阅读。
无依赖关系:除JDK之外,Gson库不需要任何其他库。 - 开源:Gson库是开源的;它是免费提供的。
- 标准化:Gson是由Google管理的标准化库。
- 高效:这是对Java标准库的可靠,快速和有效的扩展。
- 优化:库已高度优化。
- 支持泛型:为泛型提供广泛的支持。
- 支持复杂的内部类:它支持具有深继承层次结构的复杂对象。
4、Jackson
Jackson是一个简单的、功能强大的、基于Java的应用库。它可以很方便完成Java对象和Json对象(xml文档or其它格式)进行互转。Jackson社区相对比较活跃,更新速度也比较快。
Jackson库的特点:
- 高性能且稳定:低内存占用,对大/小JSON串,大/小对象的解析表现均很优异
- 流行度高:是很多流行框架的默认选择
- 容易使用:提供高层次的API,极大简化了日常使用案例
- 无需自己手动创建映射:内置了绝大部分序列化时和Java类型的映射关系
- 干净的JSON:创建的JSON具有干净、紧凑、体积小等特点
- 第三方依赖:仅依赖于JDK
- Spring生态加持:jackson是Spring家族的默认JSON/XML解析器
Jackson库的3个核心模块:
- Streaming流处理模块(jackson-core):定义底层处理流的API:JsonPaser和JsonGenerator等,并包含特定于json的实现。
- Annotations标准注解模块(jackson-annotations):包含标准的Jackson注解
- Databind数据绑定模块(jackson-databind):在streaming包上实现数据绑定(和对象序列化)支持;它依赖于上面的两个模块,也是Jackson的高层API(如ObjectMapper)所在的模块
延伸阅读
JSON简介
JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
文章标题:json类库有哪些,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/35579