Fastjson 常用API介绍及下载地址(推荐)

作者:错落有致 时间:2023-03-18 23:48:47 

Fastjson是一个Java语言编写的高性能功能完善的JSON库。将解析json的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。

GitHub下载地址:

https://github.com/alibaba/fastjson

最新发布版本jar包 1.2.23 下载地址: https://search.maven.org/remote_content?g=com.alibaba&a=fastjson&v=LATEST

maven中的依赖:


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

android版本


<dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>fastjson</artifactId>
 <version>1.1.55.android</version>
</dependency>

主要API:

fastjson入口类是com.alibaba.fastjson.JSON,主要的API是JSON.toJSONString,和parseObject。


package com.alibaba.fastjson;
public abstract class JSON {
 public static final String toJSONString(Object object);
 public static final <T> T parseObject(String text, Class<T> clazz, Feature... features);
}

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。

序列化:


String jsonString = JSON.toJSONString(obj);

反序列化:


VO vo = JSON.parseObject("...", VO.class);

泛型反序列化:


import com.alibaba.fastjson.TypeReference;
List<VO> list = JSON.parseObject("...", new TypeReference<List<VO>>() {})

fastjson的性能如何?

fastjson是目前java语言中最快的json库,比自称最快的jackson速度要快,第三方独立测试结果看这里:https://github.com/eishay/jvm-serializers/wiki/Staging-Results 。


JSON.toJSONString(obj, SerializerFeature.DisableCircularReferenceDetect)
VO vo = JSON.parseObject(“…”, VO.class, Feature.DisableCircularReferenceDetect)

fastjson性能比gson怎样?

fastjson比gson快大约6倍,测试结果上这里:https://github.com/eishay/jvm-serializers/wiki/Staging-Results 。

fastjson可以运行在android上么?

fastjson有专门的for android版本,去掉不常用的功能。jar占的字节数更小。git branch地址是:

https://github.com/alibaba/fastjson/tree/android 。

fastjson如何处理日期

fastjson处理日期的API很简单,例如:


JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd HH:mm:ss.SSS")

使用ISO-8601日期格式


JSON.toJSONString(obj, SerializerFeature.UseISO8601DateFormat);

全局修改日期格式


JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";
JSON.toJSONString(obj, SerializerFeature.WriteDateUseDateFormat);

反序列化能够自动识别如下日期格式:


ISO-8601日期格式
yyyy-MM-dd
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd HH:mm:ss.SSS
毫秒数字
毫秒数字字符串
.NET JSON日期格式
new Date(198293238)

fastjson 如何处理超大对象和超大JSON文本

fastjson提供了Stream API,详细看这里 https://github.com/alibaba/fastjson/wiki/Stream-api

ps:fastjson 常用api

一、json字符串的数据解析

     1.json字符串 ---> JSONObject或者JSONArray【好处就是当你没有bean的model类时,可以直接获取相关数据】         


Object parse(String text)【这是下面2个方法的合集,是大招!】
  JSONObject parseObject(String text)
  JSONArray parseArray(String text)

     2.json字符串 ---> bean对象【好处是如果你有model,你可以解析为java对象然后继续操作】


T parseObject(String text, Class clazz)   //一个bean对象的解析生成
  List parseArray(String text, Class clazz)   //多个bean对象的解析生成

二、java对象的json格式化

     1.bean对象转json字符串   


String toJSONString(Object object)
  String toJSONString(Object object, boolean prettyFormat)

     2.java对象转换为JSONObject或者JSONArray

     【是大招,单个bean对象能转,list集合也能转】,有了这一步,再来个toString就ok了。


 Object toJSON(Object javaObject);

总结

以上所述是小编给大家介绍的Fastjson 常用API介绍及 下载地址网站的支持!

来源:http://blog.csdn.net/liuyifeng1920/article/details/53883787

标签:fastjson,api
0
投稿

猜你喜欢

  • android之计时器(Chronometer)的使用以及常用的方法

    2021-05-26 12:27:33
  • IntelliJ IDEA 15款超级牛逼插件推荐(自用,超级牛逼)

    2023-10-10 05:51:22
  • Spring整合mybatis实现过程详解

    2022-05-23 02:10:23
  • mybatis批量添加,批量更新之前如何判断是否已经存在

    2022-01-03 20:33:38
  • C# 操作符之二 算数操作符

    2023-06-19 20:21:13
  • Java线程优先级和守护线程原理解析

    2023-03-27 16:45:30
  • Android Drawable及其相关类的使用

    2023-10-18 09:32:38
  • Java字符串查找的三种方式

    2023-11-18 22:00:30
  • C#实现字符串与图片的Base64编码转换操作示例

    2021-07-06 14:29:21
  • C#使用dynamic类型访问JObject对象

    2022-03-01 13:05:28
  • SpringCloud基本Rest微服务工程搭建过程

    2023-08-28 16:23:29
  • SpringMVC bean加载控制的实现分析

    2023-08-08 18:46:19
  • C# 使用PictureBox实现图片按钮控件的示例步骤

    2023-04-04 21:33:29
  • C#中FormsAuthentication用法实例

    2023-06-02 14:33:52
  • 解决Android屏幕四周闪现红框的问题

    2023-09-03 19:17:01
  • Java将String字符串带括号转成List的简单方法

    2022-10-26 18:20:17
  • 代码详解Java猴子选王问题(约瑟夫环)

    2023-09-16 07:33:43
  • Docker下搭建一个JAVA Tomcat运行环境的方法

    2022-01-13 14:13:29
  • android自定义波浪加载动画的实现代码

    2021-11-03 12:25:59
  • SpringMVC 域对象共享数据的实现示例

    2021-07-18 15:45:57
  • asp之家 软件编程 m.aspxhome.com