美文网首页
fastjson,jackson,gson把json字符串转成l

fastjson,jackson,gson把json字符串转成l

作者: 不知不怪 | 来源:发表于2018-09-18 18:23 被阅读0次

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

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.example</groupId>
        <artifactId>json</artifactId>
        <version>1.0</version>
        <packaging>jar</packaging>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.7.9</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.2</version>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.38</version>
            </dependency>
    
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.5.0</version>
            </dependency>
    
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.8.5</version>
            </dependency>
    
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.5.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    

    代码

    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<User> list = Arrays.asList(users);// 把数组转成list
            printUser(list);
        }
    
        // fastJson把json转List
        private static void fastJson() {
            List<User> users = JSONArray.parseArray(json, User.class);
            printUser(users);
        }
    
        // gson把json转List
        private static void gson() {
            List<User> users = new Gson().fromJson(json, new TypeToken<List<User>>() {
            }.getType());
            printUser(users);
        }
    
        private static void printUser(List<User> 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字符串转成l

          本文链接:https://www.haomeiwen.com/subject/tlrmnftx.html