json类库有哪些

json类库有:1、FastJson;2、Json-lib;3、Gson;4、Jackson。Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中非常快的JSON库。

json类库有哪些-Worktile社区

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Z, ZLW的头像Z, ZLW
上一篇 2023年1月15日 下午7:38
下一篇 2023年1月15日 下午8:02

相关推荐

  • 管理类项目应用领域有哪些

    管理类项目应用领域广泛且多样,涵盖了各个行业和领域。首先,科技行业,例如软件开发、网络安全、人工智能等,都需要用到项目管理的知识和技能。其次,建筑行业,包括建筑设计、施工、装修等,都需要进行项目管理。再者,教育行业,包括学校管理、课程设计、教学改革等,也需要进行项目管理。另外,医疗行业,如医院管理、…

    2024年8月3日
    000
  • 项目总承包的管理方法有哪些

    项目总承包的管理方法主要包括:明确项目目标、设计合理的项目计划、设置明确的执行标准、进行有效的风险管理、建立有效的沟通机制、持续的项目监控、采取灵活的变更管理、实施全面的质量控制、进行科学的成本控制和使用先进的项目管理工具。其中,设计合理的项目计划是基础,它涵盖了项目的时间、资源和成本等关键因素。项…

    2024年8月3日
    000
  • 芯片项目管理工作内容有哪些

    芯片项目管理的工作内容主要包含以下几个方面:1、项目计划制定和执行;2、团队协调和管理;3、进度跟踪和控制;4、风险识别和处理;5、质量控制和保证;6、成本和资源控制;7、通信和信息管理;8、供应链管理。 首先,项目计划的制定和执行是芯片项目管理的基础环节。在该环节中,项目经理需要根据项目的目标和需…

    2024年8月3日
    000
  • 十个项目管理新术语有哪些

    在现今的项目管理中,有十个新的术语正在广泛使用,包括敏捷管理、瀑布模型、Scrum、Kanban、Lean、DevOps、Jira、Git、PingCode、Worktile等。其中,PingCode是一款专注于企业级应用开发的云端一体化开发平台,帮助企业快速构建、部署和运行应用程序。它的出现,使得…

    2024年8月3日
    000
  • 项目风险管理的风险类型有哪些

    项目风险管理中的风险类型主要包括:技术风险、财务风险、合同风险、市场风险、组织风险、政策风险等。其中,技术风险是项目风险管理中最常见的风险类型,它包含了技术实现难度大、技术研发不成熟、技术更新快等风险。这些风险可能导致项目无法按计划进行,严重时甚至会导致项目失败。例如,如果一个项目的技术实现难度大于…

    2024年8月3日
    000

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部