fastjson怎么使用?fastjson用法汇总

Fastjson是一个Java语言编写的JSON处理器。支持JDK的各种类型,不需要任何依赖,所以在企业中也是经常使用的,那fastjson怎么使用?接下来我们就来给大家讲解一下fastjson用法汇总。

fastjson用法汇总.jpg

1.引入Pom依赖

代码如下:

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

2.使用FastJson将对象转JSON格式

代码如下:

//对象(可以是任何你能想到的格式,简单对象,集合,对象集合等)
Object object=new Object();
String json=JSON.toJSONString(object);

此时的json就是转化后的json格式数据,根据object的类型来决定格式,

如果是对象的话,格式为:{“key”:“value”,“key”:“value”},如果为

集合的话,格式为:[Object,Object]。

注意,这里不管是对象还是集合,对于里面的值的类型是没有限制的,也就是对象里面的value可以放集合也可以放对象,集合里面可以放集合也可以放对象,但是放集合的话必须要是key:value的键值对格式(其实就是对象),例如:[{“list1”:[],“list2”:[]},{“list1”:[],“list2”:[]}]

3.使用FastJson将JSON格式转为对象或集合

代码如下:

//这里我只介绍我用的比较多的几种转化
//1.JSON==>Map
String json = "{\"demo\":\"123\"}";
Map<String,Object> map=JSON.parseObject(json,Map.class);
//2.JSON==>List
String json = "[{\"demo\":\"123\"}]";
List list=JSON.parseObject(json,List.class);

注意这里的第二个参数,很关键~~~

这里的第二个参数在parseObject的时候代表的是将json格式的字符串转化为

这个参数类型的对象。什么意思呢,就是如果你写的是Map.class,那么这里就是

将这个json转成Map对象,如果是List.class,那么就会转为List集合对象。

那么有的小伙伴可能就有疑问了,那这个方法是不是就可以满足所有需求呢,答案当时不是啦,对于集合而言,FastJson提供了另一个方法供我们使用:

代码如下:

String json="[1,2,3]";
//注意这里使用了泛型,大部分时候List肯定是要用泛型的
List<Integer> list=JSON.parseArray(json,Integer.class);

这里大家有没有发现我使用的是parseArray这个方法,这个方法的第二个参数大家就要注意了,他的含义和parseObject的第二个参数可不一样。他代表的是集合的泛型的类型。这里的意思就是将json转成Integer类型的集合。举个例子:

String json = "[{\"demo\":\"123\"}]";
//还是这个json,但是这里使用另一种方式转化
List<Map<String,Object>> list=JSON.parseArray(json,Map.class);
/*
这里大家就会发现,上面这个是不行的,发现会提示提供的参数类型与需要的不匹配,
需要的是Map<String,Object>,而提供的是Map,那这种情况怎么办呢,我们就换一种
方法,用parseObject来解决
*/
List<Map<String,Object>> list=JSON.parseObject(json,List.class);
/*
但是要注意,这个时候是会提示未经检查的分配,将List转为
List<Map<String,Object>>,这里可以使用new TypeReference<>(){}来完成泛型
的转换,示例如下:
*/
List<Map<String,Object>> list= JSON.parseObject(json, new TypeReference<List<Map<String,Object>>>(){});

这里提一下,如果需要在parseObject或者parseArray里面转化的时候,第一个参数一定要是json格式的字符串,这里不建议大家使用手动拼接,建议直接使用JSON.toJSONString(),来转化,有的时候手动拼接费时费力而且容易出现错误,导致格式不对然后一堆问题,比如给前台数据变为字符串等等,所以大家要注意了~

fastjson是目前java语言中最快的json库,并且使用广泛,使用也比较简单,所以掌握好其使用方法是程序员必备的技能!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。

推荐阅读:

json格式不支持换行吗?json格式怎么打开?

java怎么写函数?java函数的特点是什么?

java多线程面试题有哪些?java多线程面试算法