fastjson文档解读——上篇

没事翻翻fastjson文档,结合网上资料,了解了解fastjson。上篇主要是解读com.alibaba.fastjson.JSON类。

fastjson主要特点:

fastjson速度非常快,它采用了独特的算法,把parse(解析)的速度提升到了极致,包括曾经号称最快的jackson(不知道jackson当年装这个逼的时候有没有想到会被阿里打脸),并且还超越了google的二进制协议protocol buf。还可以依赖多种java类型,比如常见的java八大基本类型、java bean、集合Collection的所有实现类、Enum枚举、泛型等。在支持多个类型的同时,不需要引用或依赖太多的jar包。而且支持很多环境,包括JDK5、JDK6、Andriod、阿里云手机(阿里出的json包当然要支持阿里云手机了,自家兄弟)。

使用fastjson:

下载:http://code.alibabatech.com/mvn/releases/com/alibaba/fastjson/

项目中直接导入即可。

若使用mava依赖:maven repository

<repository>

<id>opensesame</id>

<name>Alibaba OpenSource Repsoitory</name>

<url>http://code.alibabatech.com/mvn/releases/</url>

<snapshots>

<enabled>false</enabled>

</snapshots>

</repository>

在pom.xml文件中加入以下代码

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>fastjson</artifactId>

<version>1.1.23</version>

</dependency>

fastJson官方文档部分词汇翻译 :

用的1.1.26的api文档

parse:

解析

features:

特征

invoke:

调用、激活、引用

proxy:

代理

annotation:

注解

serializer:

序列化

feature:

功能

config

配置

deserializer:

反序列化


fastjson主要方法

使用json主要是为了将数据序列化和反序列化,方便在程序间传输。json序列化和反序列化相关的方法都在com.alibaba.fastjson.JSON这个类中。其实整个fastjson的我们常用到的类就包括JSON,JSONArray,JSONObject,他们都处于com.alibaba.fastjson路径下,其它的类基本都是为这类中的方法服务的。

fastJson所有的包:

com.alibaba.fastjson

com.alibaba.fastjson.annotation

com.alibaba.fastjson.asm

com.alibaba.fastjson.parser

com.alibaba.fastjson.parser.deserializer

com.alibaba.fastjson.serializer

com.alibaba.fastjson.support.spring

com.alibaba.fastjson.util

com.alibaba.fastjson.JSON主要接口及方法

parse:

将String或者byte[] 数组parse为Object,这个Object可以被JSONObject或JSONArray接收。

static Object parse(byte[] input,Feature... features)

static Object parse(byte[] input,int off,int len,CharsetDecoder charsetDecoder,int features)

static Object parse(String text)

static Object parse(String text,Feature...features)

static Object parse(String text,intfeatures)

parseArray:

将String对象parse为List

static JSONArray parseArray(String text)

static <T> List<T> parseArray(Stringtext,Class<T> clazz)

static List<Object> parseArray(Stringtext,Type[] types)

parSEObject:

前面返回值是泛型,这系列方法可以把String或者byte[] parse为自己定义的实体类,也可以是其他jar包的数据类型,只要在后面指明它的类型就好了。

static <T> T parSEObject(byte[]input,Type clazz,Feature...features)

static <T> T parSEObject(byte[]input,Feature... features)

static <T> T parSEObject(char[]input,int length,Feature... features)

static JSONObject parSEObject(String text)

static <T> T parSEObject(String text,Class<T> clazz)

static <T> T parSEObject(String text,Class<T> clazz,Feature... features)

static JSONObject parSEObject(String text,Feature... features)

static <T> T parSEObject(Stringinput,int featureValues,ParserConfig config,Feature... features)

static <T> T parSEObject(String text,TypeReference<T> type,Feature... features)

toJSON:

将javabean转为JSONObject或者JSONArray。ParseserConfig可以设置转换时的一些配置。

static Object toJSON(Object javaObject)

static Object toJSON(Object javaObject,ParserConfigmapping)

toJSONBytes:

将对象转为byte[] 数组,可以使用SerializeConfig和SerializerFeature对这个转化进行一些…“改造”,都是com.alibaba.fastjson.serializer里面的内容

static byte[] toJSONBytes(Object object,SerializeConfig config,SerializerFeature... features)

static byte[] toJSONBytes(Object object,SerializerFeature... features)

toJSONString:

把对象转为String字符串。

static String toJSONString(Object object)

static String toJSONString(Object object,boolean prettyFormat)

static String toJSONString(Object object,SerializerFeature... features)

static String toJSONString(Object object,Serializefilter filter,SerializerFeature... features)

static StringtoJSONStringWithDateFormat(Object object,String dateFormat,SerializerFeature... features)

static String toJSONStringZ(Object object,SerializeConfig mapping,SerializerFeature... features)

还有一些孤军奋战的勇士:

static <T> inthandleResovleTask(DefaultJSONParser parser,T value) :暂时不知道有什么用。

String toString() :就是toString

void writeJSONString(Appendable appendable):write JSON string to out.

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...