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)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年1月15日 下午7:38
下一篇 2023年1月15日 下午8:02

相关推荐

  • 项目管理如何画好里程碑模板

    画好里程碑模板的步骤:确定项目的主要阶段;确定关键日期;使用图表和图形;确定里程碑的触发条件;处理里程碑事件的变更;与利益相关者协商。在设计里程碑模板之前,项目经理需要先确定项目的主要阶段。 确定项目的主要阶段 在设计里程碑模板之前,项目经理需要先确定项目的主要阶段。这些阶段可以是项目启动、规划、执…

    2023年3月30日
    8200
  • svn是什么工具

    SVN(Subversion),是一个开放源代码的版本控制系统,也就是说 Subversion 管理着随时间改变的数据,是在多个人员、设备之间,同步不同版本的文档和源代码的工具。简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。 SVN的全称是Subversion,即版本…

    2022年12月27日
    3.8K00
  • 项目重构时间安排计划该怎么做

    项目重构时间安排计划的步骤:一、确定项目需求;二、制定项目计划;三、监控项目进展;四、处理延迟。在项目重构的过程中,我们需要知道哪些部分需要修改,以及修改的目的和范围。这也可以帮助我们确定项目的时间和资源需求。 一、确定项目需求 首先,我们需要确定项目需求。在项目重构的过程中,我们需要知道哪些部分需…

    2023年4月29日
    1700
  • confluence是什么软件

    confluence是一个专业的企业知识管理与协同软件,可以为团队提供一个协作环境,其强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送。Confluence为团队提供一个协作环境。使团队成员能齐心协力,各擅其能,协同地编写文档。 Confluence是一个专业的企业…

    2022年11月16日
    80000
  • 使用cocos creator时未关联脚本编辑器怎么解决

    解决办法的步骤是:1、打开Cocos Creator的Preferences设置;2、选择脚本编辑器;3、配置脚本编辑器路径;4、保存设置。打开Cocos Creator的Preferences设置,在菜单栏中选择“Cocos Creator” > “Preferences”,以打开Cocos…

    2023年2月28日
    17700
  • 全过程项目管理中心是什么

    全过程项目管理中心是指一个中心化的机构,用于对整个项目的各个阶段进行全方位的管理与控制,以提高项目管理的质量和效率。在项目管理中,通常经历立项、计划、执行和结束等阶段,全过程项目管理中心负责对这些阶段的各种管理和控制工作。 全过程项目管理中心是指一个中心化的机构,用于对整个项目的各个阶段进行全方位的…

    2023年4月30日
    500
  • 如何修改IP地址

    修改IP地址的方法:1、代理IP修改IP地址;2、开启/关闭飞行模式换IP;3、路由设备重启改IP;4、在电脑上手动修改。代理IP修改IP地址是指,利用代理IP技术更换手机电脑IP、切换模拟器、软路由、虚拟机等IP地址。 1、代理IP修改IP地址 在爬虫Python、游戏多开、营销推广、SEO、试玩…

    2023年1月6日
    12900
  • 项目沟通管理的方法有哪些

    项目沟通管理的方法有:一、确定沟通目标和需求;二、制定沟通计划;三、确定沟通渠道和工具;四、建立沟通机制;五、进行沟通培训;六、监控沟通效果;七、管理沟通风险;八、建立沟通档案。在开始项目前,需要确定项目中沟通的目标和需求。 一、确定沟通目标和需求 在开始项目前,需要确定项目中沟通的目标和需求。这些…

    2023年4月30日
    4200
  • Java为什么使用UTF-16而不是更节省内存的UTF-8

    Java使用UTF-16而不是更节省内存的UTF-8是因为UTF-16可以做到大部分常见的文字按2个字节存储,少量不常见的字符按4个字节存储,统计和定位字符的效率比UTF-8高。而UTF-8划分的变长空间多,这方面是个不能忽视的短板。 所谓UTF-8更节省内存的说法,对广大东亚文字来说根本就是伪命题…

    2023年2月7日
    8700
  • 如何画甘特图

    以EXCEL画甘特图为例,步骤如下:1、制作作业进度表;2、用EXCEL启动图表制作向导程序;3、生成初始图;4、修改图表,添加“持续天数”;5、生成初始甘特图;6、反转图表;7、修改初始甘特图。作业进度表是画甘特图的数据来源和基础。 一、画甘特图的步骤 1、制作作业进度表:作业进度表是画甘特图的数…

    2023年2月9日
    10800

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部