zoukankan      html  css  js  c++  java
  • JSon实体类快速生成插件 GsonFormat 1.2.0

    写在前头:本插件只适用 android studio和 Intellij IDEA 工具,eclipse 的少年无视我吧!!!

    这是一个根据JSONObject格式的字符串,自动生成实体类参数.

    github
    jetbrains
    版本1.2.0

    1.2.0 版本更新内容:

    1. 新增处女座模式 →_→
    2. 修复List 泛型错误的问题;
    3. 支持 自定义 Filed Name 前缀
    4. 支持除Gson数据转换库 (eg: Jackson, FastJson)

    版本1.1.3

    1.1.3 版本更新内容:

    1. 内部类使用 static 修饰;
    2. 生成属性的时候会过滤父类的属性;
    3. 支持修改实体类的后缀名,保持跟项目命名规则的统一;
    4. 支持自动生成转换方法;
    5. 支持转换方法的修改;
    6. 支持是否复用内部实体类,默认不启用;
    7. 支持转换异常的异常信息查看; 

    版本1.1.2

    1.1.2 版本更新内容:

    1. 修复了开启对话框会闪一下的 bug;
    2. 增加了设置界面;
    3. 增加了使用Public 修饰成员变量,替代 private 和 set/get 方法.默认为 private ,可以手动切换过来;
    4. 支持全部变量用注解(SerializedName)的形式.然后你就可以混淆实体类.

    版本1.1.1

    1.1.1版本更新内容

    1. 修复了因为过滤//注释代码导致的出现的 Json 格式验证异常;
    2. 支持解析 java 的关键字作为 key (支持字段:
      default,abstract,null,final,void,implements,
      this,instanceof,native,new,goto,const,volatile,return,finally)其余暂不支持;

    版本1.1.0

    1.1.0 版本更新内容:

    1. 支持数组中嵌套数组的解析;
    2. 支持过滤Json格式中的注释代码.

    Usage

    安装方法1:

    1.Android studio  File->Settings..->Plugins-->Browse repositores..搜索Gson
    
    2.安装插件,重启android studio

    安装方法2:

         1.下载GsonFormat.jar ;
         2.Android studio  File->Settings..->Plugins -->
     install plugin from disk..导入下载的GsonFormat.jar 
         3重启android studio

    使用方式

    在实体类中使用Generate的快捷键.

    快捷键:图中选中的部分


    72350A47-A21A-4505-817E-2CA8092F7B7D.png


    我这边的快捷键是 command+n;

    1.2.0 截图


    1.2.0 .gif

    简单的实体类:


    简单的.gif


    图中简单的 json 格式

    {
        "name": "王五",
        "gender": "man",
        "age": 15,
        "height": "140cm",
    }

    图中的实体类

    **
     * Created by 轻微 on 15/1/9.
     */
    public class Bean   {
    
    
        /**
         * height : 140cm
         * age : 15
         * name : 王五
         * gender : man
         */
        private String height;
        private int age;
        private String name;
        private String gender;
    
        public void setHeight(String height) {
            this.height = height;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setGender(String gender) {
            this.gender = gender;
        }
    
        public String getHeight() {
            return height;
        }
    
        public int getAge() {
            return age;
        }
    
        public String getName() {
            return name;
        }
    
        public String getGender() {
            return gender;
        }
    }
    复杂的实体类:

    实体类不仅包含另外一个实体,还包含另外实体的数组.


    复杂.gif


    图中复杂的json 格式

    {
        "name": "王五",
        "gender": "man",
        "age": 15,
        "height": "140cm",
        "addr": {
            "province": "fujian",
            "city": "quanzhou",
            "code": "300000"
        },
        "hobby": [
            {
                "name": "billiards",
                "code": "1"
            },
            {
                "name": "computerGame",
                "code": "2"
            }
        ]
    }

    图中的实体类

    /**
     * Created by 轻微 on 15/1/9.
     */
    public class Bean  extends JSONModel {
    
    
        /**
         * height : 140cm
         * age : 15
         * name : 王五
         * hobby : [{"name":"billiards","code":"1"},{"name":"computerGame","code":"2"}]
         * gender : man
         * addr : {"province":"fujian","code":"300000","city":"quanzhou"}
         */
        private String height;
        private int age;
        private String name;
        private List<HobbyEntity> hobby;
        private String gender;
        private AddrEntity addr;
    
        public void setHeight(String height) {
            this.height = height;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setHobby(List<HobbyEntity> hobby) {
            this.hobby = hobby;
        }
    
        public void setGender(String gender) {
            this.gender = gender;
        }
    
        public void setAddr(AddrEntity addr) {
            this.addr = addr;
        }
    
        public String getHeight() {
            return height;
        }
    
        public int getAge() {
            return age;
        }
    
        public String getName() {
            return name;
        }
    
        public List<HobbyEntity> getHobby() {
            return hobby;
        }
    
        public String getGender() {
            return gender;
        }
    
        public AddrEntity getAddr() {
            return addr;
        }
    
        public class HobbyEntity {
            /**
             * name : billiards
             * code : 1
             */
            private String name;
            private String code;
    
            public void setName(String name) {
                this.name = name;
            }
    
            public void setCode(String code) {
                this.code = code;
            }
    
            public String getName() {
                return name;
            }
    
            public String getCode() {
                return code;
            }
        }
    
        public class AddrEntity {
            /**
             * province : fujian
             * code : 300000
             * city : quanzhou
             */
            private String province;
            private String code;
            private String city;
    
            public void setProvince(String province) {
                this.province = province;
            }
    
            public void setCode(String code) {
                this.code = code;
            }
    
            public void setCity(String city) {
                this.city = city;
            }
    
            public String getProvince() {
                return province;
            }
    
            public String getCode() {
                return code;
            }
    
            public String getCity() {
                return city;
            }
        }
    }

    1.1.1的过滤注释功能讲解:
    支持 java 两种注释过滤:

    /**段注释:
     */
    
    //行注释:

    例子:

    {
        /**
        * 名字
        */
        "name": "王五",
        "gender": "man",//性别
        "age": 15,
        "height": "140cm",
    }

    这样它也是可以解析的.

  • 相关阅读:
    v$、v_$、gv$之间的关系
    10046确认多块读无法跨区
    查询表Or列的注释信息
    数据文件resize扩容
    11.2.0.4rac service_name参数修改
    数据库开启对sys用户的审计
    sql查询未走索引问题分析之查询数据量过大
    ORA-00600: internal error code, arguments: [kole_t2u], [34]
    ORA-00600: internal error code, arguments: [kcblasm_1], [103], [] bug
    Linux基础知识
  • 原文地址:https://www.cnblogs.com/jiayonghua/p/5051772.html
Copyright © 2011-2022 走看看