zoukankan      html  css  js  c++  java
  • Gson反序列json到实体类

    gson在基准测试过程中各项性能接近于Jackson(具体可以看Benchmark of Java JSON libraries)里面的测试,

    本人亲测过,实测结果与他的数据一致,Jackson安全性以及性能稳定性毋庸置疑。

    笔者当初连续遇到过fastjson多个bug,最终放弃他,投入Jackson怀抱;但是Jackson api使用起来配置比较多。

    也就是api不够简洁,有些场景我的json很简单,只需要从json到实体之间互相转换(序列化与反序列化)。

    gson的api比较简单,也是这篇文章的由来,以下是反序列化代码。

    @SerializedName用来指明json中与实体字段名不一致问题。

    import com.google.gson.annotations.SerializedName;
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    /***
     * ASR服务器状态
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class ASRServerStatus {
    
    
        /***
         * 当前空闲的worker数目
         */
        @SerializedName("num_workers_available")
        private Integer availWorkers;
    
    
        //以下字段后续在python服务器端采集上来加入,目前接口返回数据中还没有相关字段
    
        /***
         * 已经处理的任务数
         */
        @SerializedName("num_requests_processed")
        private Integer processedRequests;
    
        /***
         * 服务器负载 1分钟
         */
        private Float load1;
    
        /***
         * 服务器负载 5分钟
         */
        private Float load5;
    
        /***
         * 服务器负载 15分钟
         */
        private Float load15;
    
    
        private Float totalMem;
    
        /***
         * Cached/Shared Memory
         */
        private Float sharedMem;
    
        /***
         * 通过公式计算获得: total-buff-used
         */
        private Float availMem;
    
        private Float usedMem;
    }
    import com.google.gson.Gson;
    import com.netmarch.web.open.ws.ASRServerStatus;
    import org.junit.Test;
    
    public class TestGson {
        @Test
        public void deserial()
        {
            String json ="{"num_workers_available": 9, "num_requests_processed": 61}";
            Gson gson =new Gson();
            ASRServerStatus status = gson.fromJson(json, ASRServerStatus.class);
            System.out.println(status);
        }
    }

    结果:

  • 相关阅读:
    sqlserver中死锁问题
    sqlserver循环
    自动装箱和拆箱的原理
    资源文件
    SqlServer函数
    PGSql
    SOAP和REST
    Replication
    office等资料下载
    mysql
  • 原文地址:https://www.cnblogs.com/passedbylove/p/11934157.html
Copyright © 2011-2022 走看看