Fastjson是一个Java语言编写的JSON处理器。支持JDK的各种类型,不需要任何依赖,所以在企业中也是经常使用的,那fastjson怎么使用?接下来我们就来给大家讲解一下fastjson用法汇总。
1.引入Pom依赖
代码如下:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.7</version> </dependency>
代码如下:
//对象(可以是任何你能想到的格式,简单对象,集合,对象集合等) 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>>>(){});
fastjson是目前java语言中最快的json库,并且使用广泛,使用也比较简单,所以掌握好其使用方法是程序员必备的技能!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。
推荐阅读: