常用json序列化/反序列化技术对比测试
2020-11-16 09:56
标签:des style blog http java color 目前常用的json工具有:1、json-lib;2、jakson-mapper;3、fastjson。 下面对这三种工具的性能进行简单对比测试。 测试样本:一个126K的json文件,内容为json数组。 测试方法:反序列化,读取文件中的json转化为java对象。 测试代码如下: 本机为奔腾双核2.5G、内存3G机器,运行测试方法10次,运行时间单位为毫秒。测试结果如下: 从上图的测试结果中看出,fastjson的性能明显优于jackson-mapper和json-lib,而jackson-mapper性能略优于json-lib。综上所述,使用fastjson还是很有优势的,在项目中应该优先考虑使用。 此外fastjson还支持超大数据集的序列化和反序列化。例如: 具体参见:https://github.com/alibaba/fastjson/wiki/Stream-api 附上fastjson的maven依赖: 常用json序列化/反序列化技术对比测试,搜素材,soscw.com 常用json序列化/反序列化技术对比测试 标签:des style blog http java color 原文地址:http://www.cnblogs.com/xibeitudou/p/3699885.html 1 @Test
2 public void testDeserialize() throws Exception {
3 String dealer = "d:\\auto\\json\\100016109.js"; // 一个126k的json文件
4 String content = FileUtils.readFileToString(new File(dealer));
5
6 // 反序列化测试
7
8 long start = System.currentTimeMillis();
9 com.alibaba.fastjson.JSONArray array = com.alibaba.fastjson.JSONArray
10 .parseArray(content);
11 long end = System.currentTimeMillis();
12
13 System.out.println("com.alibaba.fastjson.JSONArray: " + (end - start));
14
15 start = System.currentTimeMillis();
16 net.sf.json.JSONArray array2 = net.sf.json.JSONArray
17 .fromObject(content);
18 end = System.currentTimeMillis();
19
20 System.out.println("net.sf.json.JSONArray: " + (end - start));
21
22 start = System.currentTimeMillis();
23 org.codehaus.jackson.map.ObjectMapper mapper = new org.codehaus.jackson.map.ObjectMapper();
24 List array3 = mapper.readValue(content, List.class);
25 end = System.currentTimeMillis();
26
27 System.out.println("org.codehaus.jackson.map.ObjectMapper: "
28 + (end - start));
29
30 }
1 //读取json数组
2 JSONReader reader = new JSONReader(new FileReader("d:\\auto\\json\\100016109.js"));
3 reader.startArray();
4 while(reader.hasNext()){
5 VO vo = reader.readObject(VO.class);
6 //handle vo ...
7 }
8 reader.endArray();
9 reader.close();
dependency>
groupId>com.alibabagroupId>
artifactId>fastjsonartifactId>
version>1.1.39version>
dependency>