FastJson、Jackson、Gson、Json的效率简单对比

本文介绍了在优化代码过程中遇到的JSON解析效率问题,对比了FastJson、Jackson、Gson和org.Json四个Java JSON库在处理大量数据时的性能。测试结果显示,对于str—>list转换,FastJson速度最快,Gson次之但不稳定,org.Json最慢;而对于list—>str转换,Jackson表现最佳,其他三者差距较小。
摘要由CSDN通过智能技术生成

今天上班优化代码的时候,发现从Redis中取出List<Map<String,String>>格式的json字符串,通过net.sf.json将其转成List的时候,如果List.size()在1000左右时,消耗处理时间为1000ms,效率非常低;然后搜了下java解析json常用api,发现alibaba的fastJson处理效率还是不错的,当size在1000左右时,也就不足100ms。
然后。。。。回家就简单对比了下几个json处理方式:FastJson、Jackson、Gson、org.Json;
首先maven引入依赖:

    <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20170516</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.1</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.35</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.0.pr4</version>
        </dependency>

编写相应的类,测试jsonStr–list,list–jsonStr的处理时间

  • org.json
package com.love.yu.maven.learn.json;

import java.util.List;
import org.json.JSONArray;

public class TestJson {
    public void testJsonStr2List(String str) {
        long a = System.currentTimeMillis();
        JSONArray jsonArray = new JSONArray(str);
        List<Object> list = jsonArray.toList();
        long b = System.currentTimeMillis();
        System.out.println("JsonStr2List:size=" + list.size() + ",time=" + (b - a));
    }

    public String testJsonList2Str(List<String> list) {
        long a = System.currentTimeMillis();
        JSONArray array = new JSONArray(list);
        String str = array.toString();
        long b = System.currentTimeMillis();
        System.out.println("JsonList2Str:length=" + str.length() + ",time=" + (b - a));
        return str;
    }
}
  • fastJson
package com.love.yu.maven.learn.json;

import java.util.List;
import com.alibaba.fastjson.JSONArray;

public class TestFastJson {
    public void testFastJsonStr2List(String str) {
        long a = System.currentTimeMillis();<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值