fastjson,jackson,gson把json字符串转成list对比

个人觉得fastjson最好用,据说性能也不错

pom.xml



    4.0.0
    com.example
    json
    1.0
    jar

    
        UTF-8
        UTF-8
        1.8
    
    
        
            org.slf4j
            slf4j-log4j12
            1.7.9
        
        
            commons-logging
            commons-logging
            1.2
        

        
            com.alibaba
            fastjson
            1.2.38
        

        
            com.fasterxml.jackson.core
            jackson-databind
            2.5.0
        

        
            com.google.code.gson
            gson
            2.8.5
        

    
    
        
            
                maven-compiler-plugin
                3.5.1
                
                    1.8
                    1.8
                    UTF-8
                
            
        
    

代码

package com.example;

import java.io.IOException;
import java.util.Arrays;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.alibaba.fastjson.JSONArray;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

public class TestJson {
    private static Log logger = LogFactory.getLog(TestJson.class);// 定义日志工具
    private static String json = "[{\"id\":1,\"name\":\"张三\",\"age\":30},{\"id\":2,\"name\":\"张三丰\",\"age\":30},{\"id\":3,\"name\":\"张丰\",\"age\":3}]";

    public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {
        logger.info("jackson");
        jackson();
        logger.info("fastJson");
        fastJson();
        logger.info("gson");
        gson();
    }

    // jackson把json转List
    private static void jackson() throws JsonParseException, JsonMappingException, IOException {
        User users[] = new ObjectMapper().readValue(json, User[].class);
        List list = Arrays.asList(users);// 把数组转成list
        printUser(list);
    }

    // fastJson把json转List
    private static void fastJson() {
        List users = JSONArray.parseArray(json, User.class);
        printUser(users);
    }

    // gson把json转List
    private static void gson() {
        List users = new Gson().fromJson(json, new TypeToken>() {
        }.getType());
        printUser(users);
    }

    private static void printUser(List users) {
        for (User user : users) {
            logger.info(user);
        }
    }
}

User.java

package com.example;

public class User {

    private Integer id;
    private Integer age;
    private String name;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", age=" + age + ", name=" + name + "]";
    }

}

你可能感兴趣的:(fastjson,jackson,gson把json字符串转成list对比)