Alibaba Fastjson 入门详细教程

目录

Fastjson 概述与下载

FastJson V2 再战10年

FastJson 常用操作方式


Fastjson 概述与下载

1、fastjson 是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean

2、FastJson 与 Google 的 Gson 都是解析 Json 的强者,两者不相伯仲

3、免费开源,GitHut地址:https://github.com/alibaba/fastjson

FastJson 特性
特性描述
速度快fastjson相对其他JSON库的特点是快,从2011年fastjson发布1.1.x版本之后,其性能从未被其他Java实现的JSON库超越。
使用广泛fastjson在阿里巴巴大规模使用,在数万台服务器上部署,fastjson在业界被广泛接受。在2012年被开源中国评选为最受欢迎的国产开源软件之一。
测试完备fastjson有非常多的testcase,在1.2.11版本中,testcase超过3321个。每次发布都会进行回归测试,保证质量稳定。
使用简单String text = JSON.toJSONString(obj); //序列化
VO vo = JSON.parseObject("{...}", VO.class); //反序列化
功能完备

支持泛型,支持流处理超大文本,支持枚举,支持序列化和反序列化扩展。

JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "zhangSan");
System.out.println(jsonObject.get("name"));//zhangSan
System.out.println(jsonObject.get("name3"));//key 不存在时返回 null
JSONObject jsonObject_content = jsonObject.getJSONObject("key");//key 不存在时,返回 null

4、配置 maven 依赖:https://github.com/alibaba/fastjson

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.49</version>
</dependency>

5、fastjson 会不定期发布针对 android 版本优化的版本,android优化版本是去掉不必要的代码,减少体积,功能和标准版本基本一样。 已发布的android版本包括:http://repo1.maven.org/maven2/com/alibaba/fastjson/1.1.51.android/

FastJson V2 再战10年

1、FASTJSON v2 是 FASTJSON 项目的重要升级,目标是为下一个十年提供一个高性能的 JSON 库。通过同一套API做到如下支持。

    支持JSON/JSONB两种协议,JSONPath是一等公民。
    支持全量解析和部分解析。
    支持Java服务端、客户端Android、大数据场景。
    支持Kotlin
    支持Android (2.0.3.android)
    支持Graal Native-Image (2.0.3.graal)

2、在 fastjson v2 中,package 和 1.x 不一样,是 com.alibaba.fastjson2,如果你之前用的是fastjson1,大多数情况直接更包名就即可 。https://github.com/alibaba/fastjson2

<!-- https://mvnrepository.com/artifact/com.alibaba.fastjson2/fastjson2 -->
<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.20</version>
</dependency>

FastJson 常用操作方式

1、它的 Api 其实与 Google 的 Gson 基本类似,fastJson 中 JsonObject 类继承 Json 抽象类。

2、实体对象序列化为 json 字符串时,为 null 的属性默认不会序列化。

3、反序列化为复杂的对象类型时,需要借助 TypeReference 进行转换。

Map<String, List<Person>> viewAllElements = JSONObject.parseObject(jsonString, new TypeReference<Map<String, List<Person>>>() {}.getType());

4、API 演示源码:

https://gitee.com/wangmx1993/web_app/blob/master/src/test/java/com/wmx/fastjson/Person.java

https://gitee.com/wangmx1993/web_app/blob/master/src/test/java/com/wmx/fastjson/FastjsonTest.java

  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蚩尤后裔-汪茂雄

芝兰生于深林,不以无人而不芳。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值