com.alibaba.fastjson
说一下好多人都在用的一款json包。本文是操作一些json,jsonObject序列化各种异常之后写的。由于项目在使用这款json包。特意举一些demo详细记录一下。
首先这款json包是一款性能非常好的json包,至于为什么性能好,我也不知道。大家都这么说。那我也这么说吧。反正也在用。
本文只说很多方法的使用。不说各个版本的区别什么的。因为我也不知道。这个支持map,collection和javaBean.一般支持这些够了
首先看下这个的maven的仓库。
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
版本号选一个自己喜欢的。关于maven不再解释。tips:maven代码复制时可能pom会报错。手动敲就好了。
这个包里面最主要也是最常用的两个类是 JSON JSONObject 这两个类也都是内部使用的是final map 来实现的。构造的时候可以传入一个ordered。来确定使用LinkedHashMap还是HashMap。看下面这个构造。还可以使用map入参来构造jsonObject。也可以看到jsonobject实际上是json的子类。有一个特征就是 jsonObject是没有static方法的。我们打点出来的静态方法都是JSON那边继承过来的。就不往深挖源码了,知道大概就好。
关于json字符串转对象和字符串转json. JavaBean、Collection、Map、Date、Enum、都可以
parseArray(jsonStr,Class<T>) List<T> jsonArray跟List<T>一样
JSONObject 实现了Map<String,Object> 接口。看下面方法好多跟map瞅着一样
下面为例子json。data的value可以看成List<Persion> persion有name属性。 instance可以看成Map(对象的json字符串形式)
目前用的就这么多。关于一些不是很常用的方法没有罗列出来。感兴趣可以看源码API。