java json库之JsonLib、Gson、Jackson、FastJson

之前被Json-lib库坑过,解析的太tm慢了。切换成FastJson库后性能有了质的飞跃。借此整理一下各json库

一、Json-lib库

最古老、使用范围最广,但是性能最差的一款json库。不推荐!

添加依赖:

<dependency>
    <groupId>net.sf.json-lib</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.4</version>
    <classifier>jdk15</classifier>
</dependency>

 使用方法:

  1. java对象(包括list、map)转json字符串:String jsonStr=JSONObject.fromObject(bean).toString()
  2. json字符串转java对象:Bean bean=(Bean) JSONObject.toBean(JSONObject.fromObject(jsonStr), Bean.class)

二、Gson库

功能最全的json解析器,google谷歌出品

需要依赖:

		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>2.8.6</version>
		</dependency>

使用方法:

  1. java对象(包括list、map)转json字符串:String jsonStr=new Gson().toJson(bean);
  2. json字符串转java对象:Bean bean=new Gson().fromJson(jsonStr, Bean.class)
  3. json字符串转list对象:List<Bean> beanList =new Gson().fromJson(jsonStr, new TypeToken<List<Bean>>(){}.getType());
  4. json字符串转map对象:Map<String,String>map=new Gson().fromJson(str, new TypeToken<HashMap<String,String>>(){}.getType());

三、Jackson库(springboot项目可以直接只用,无需引包)

最流行的json库。springMVC默认的json库就是jackson。

需要依赖:

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.10.1</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>2.10.1</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>2.10.1</version>
		</dependency>

使用方法:

  1. java对象(包括list、map)转json字符串:String jsonStr=new ObjectMapper().writeValueAsString(bean);
  2. json字符串转java对象:Bean bean=new ObjectMapper().readValue(jsonStr, Bean.class)
  3. json字符串转list对象:List<Bean> beanList = new ObjectMapper().readValue(jsonStr, new TypeReference<ArrayList<Bean>>() {});//TypeReference匿名内部类,指明对象类型
  4. json字符串转map对象:Map<String,String>map=new ObjectMapper().readValue(jsonStr, new TypeReference<HashMap<String,String>>(){});

四、FastJson库(推荐)

阿里出品的json库,解析速度非常快。但是被曝出过漏洞问题,使用最新版的就好。

添加依赖:

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

使用方法:

  1. java对象(包括list、map)转json字符串:String jsonStr=JSON.toJSONString(bean);
  2. json字符串转java对象:Bean bean=JSONObject.parseObject(jsonStr, Bean.class)
  3. json字符串转list对象:List<Bean> beanList =JSONObject.parseArray(jsonStr, Bean.class);
  4. json字符串转map对象:Map<String,String>map=JSONObject.parse(jsonStr);

五、各json库对比

没时间写了,借用一下网图对比一下各json库性能

序列化性能如下:

反序列化性能如下:

综上:

数据量少时:Gson快

数据量多时:FastJson快

数据量无论多少:Jackson最稳定

排名:

FastJson>Jackson>Gson>Json-lib

以后有时间了再测试一下

猜你喜欢

转载自blog.csdn.net/sumengnan/article/details/112851181