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, ZLWZ, ZLW认证作者
上一篇 2023年1月15日 下午7:38
下一篇 2023年1月15日 下午8:02

相关推荐

  • 金融学java和学python有什么区别

    金融学java和学python语言其实真没有什么区别的。两个语言在零基础的情况下起点是一样的。相对而言,现在学 python 方向主要是数据分析,爬虫 AI等。而 java 方向是安卓,后端。看自己想从事哪方面再考虑学哪个语言吧。

    2023年2月13日
    55900
  • 国产化oa办公系统

    标题:国产化OA办公系统的探索与实践 摘要:在当今数字化转型的大背景下,国产化OA办公系统已成为企业信息化建设的重要组成部分。其优点包括:1、强化数据安全、2、提高工作效率、3、兼容性与可定制性强等。尤其在提升数据安全方面,国产化OA办公系统可以受益于本土化服务和数据中心,使得企业对信息的控制由简约…

    2024年1月15日
    20900
  • oa开放存取

    开放存取(Open Access, OA)是指研究成果如学术论文、图书等以数字电子版免费提供给用户阅读、下载和分发的出版模式。1、促进知识普及;该运动对学术研究领域的贡献极为重大,2、提升研究效率;它能帮助学者们快速共享研究成果,3、减少知识鸿沟;利用网络资源,促进信息公平获取。4、支持科研发展;为…

    2024年1月16日
    21200
  • 什么是项目进度管理的关键指标

    项目进度管理是确保项目按时交付的关键工作域之一,需依靠特定的性能指标来监控。关键指标包括1、项目里程碑的准时性、2、关键路径的变化、3、实际进度与计划进度的偏差、4、资源的利用率和5、成本绩效指数 (CPI)。1、项目里程碑的准时性指标是监控大型项目进度的一大重点。这个指标跟踪计划中的关键时间节点与…

    2023年12月26日
    47000
  • oa智能化管理系统

    “智能化OA系统应如何选型和实施?” 在这个数字化转型的时代背景下,智能化OA(Office Automation)系统极大地提升了企业的管理效率和协作能力。合适的选择与实践路径对系统的成功落地至关重要。该决策过程通常涉及以下几个关键环节:1、明确组织需求、2、考虑易用性和兼容性、3、评估供应商的实…

    2024年1月15日
    21100
  • vscode为什么运行不了html

    Visual Studio Code (VSCode) 是一款功能丰富的代码编辑器,然而,它本身不包含内置的HTML渲染引擎。运行HTML文件通常意味着在浏览器中打开和渲染它,而VSCode没有直接的方法来模拟浏览器的行为。因此,你不能通过点击“运行”来预览HTML页面,需要使用VSCode的“Li…

    2024年4月3日
    10200
  • oa系统全称是什么

    OA系统全称为办公自动化系统(Office Automation System),该系统意在借助信息技术实现办公流程的电子化、自动化以及信息化,核心功能涉及文档管理、电子邮件、工作流程审批、通讯录管理1、会议管理等。这些功能通过优化企业内部通信、协作和管理,旨在提高工作效率,减少不必要的文书工作,并…

    2024年1月11日
    37300
  • websocket与ajax的区别是什么

    websocket与ajax的区别是什么:1、本质不同;2、生命周期不同;3、适用范围不同;4、发起人不同。其中,本质不同是指,Ajax,即异步JavaScript和XML,是一种创建交互式网页应用的网页开发技术。 一、本质不同 Ajax,即异步JavaScript和XML,是一种创建交互式网页应用…

    2023年5月16日
    87700
  • 什么是拉动式管理

    拉动式管理是指:顾名思义,依靠拉力实现管理改进。拉动式管理,外需是动因,是业务导向型的行为方式。管理行为的产生通常由客户终端层提出(可以是高层,也可以是基层),如大多数发展初期的企业管理的改进都是拉动式;通过业务发展或客户需求来拉动企业管理的改进与提升。 一、什么是拉动式管理 拉动式管理,顾名思义,…

    2023年5月6日
    48000
  • 如何在云原生环境中实现自动化测试

    云原生环境下实现自动化测试的主体策略围绕着提升敏捷性、保障可靠性和效率优化。核心观点包括:1、集成持续测试、2、容器化测试环境、3、微服务架构适应性、4、基础设施即代码(IaC)、5、监控与日志。集成持续测试注重在开发的每个阶段引入测试,以及利用CI/CD管道自动执行测试用例。容器化测试环境强调以容…

    2023年11月23日
    25800

发表回复

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

400-800-1024

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

分享本页
返回顶部