当前位置:   article > 正文

Alibaba Fastjson 入门详细教程_alibaba.fastjson

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

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>fastjson</artifactId>
  4. <version>1.2.49</version>
  5. </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

  1. <!-- https://mvnrepository.com/artifact/com.alibaba.fastjson2/fastjson2 -->
  2. <dependency>
  3. <groupId>com.alibaba.fastjson2</groupId>
  4. <artifactId>fastjson2</artifactId>
  5. <version>2.0.20</version>
  6. </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

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号