IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> IntelliJ IDEA开发工具插件GsonFormat插件安装使用 -> 正文阅读

[开发工具]IntelliJ IDEA开发工具插件GsonFormat插件安装使用

今天给大家介绍一款很实用的GsonFormat插件,GsonFormat插件能够将我们的json格式数据生成对应的实体类,层级关系通过内部类来嵌套,这个工具有时候是很实用的,例如以前公司在对接第三方接口的时候,他们通常提供的入参形式是json形式,但是对于java来说,我们为了方便赋值和接收三方的值,要将其转成对象,所以这个时候我们就需要创建一个对象,但是如果json参数比较多,很容易出错,这个工具就用到了,完美解决我们的机械操作问题。下面来介绍如何安装以及如何使用。

安装插件

和安装其他插件方式相同,Mac在Preferences ->》plugins

输入GsonFormat,如下图所示,点击Install?下载后点击OK,会提示重启,点击重新启动则可。

使用方式

?先构造一个正确JSON格式数据,如下

{
?? ?"acIdttbPressFilterConfEntities": [],
?? ?"acIdttbPressNodeConfEntityList": [{
?? ??? ?"acComTransRuleDefnEntity": {
?? ??? ??? ?"acComTransRuleDetailEntityList": [{
?? ??? ??? ??? ?"detailSort": 1,
?? ??? ??? ??? ?"effectiveTime": -9223372036854776000,
?? ??? ??? ??? ?"exeConditionExps": "",
?? ??? ??? ??? ?"expirationTime": 9223372036854776000,
?? ??? ??? ??? ?"ruleDefnId": 529,
?? ??? ??? ??? ?"targetPath": ""
?? ??? ??? ?}, {
?? ??? ??? ??? ?"detailSort": 2,
?? ??? ??? ??? ?"effectiveTime": -9223372036854776000,
?? ??? ??? ??? ?"exeConditionExps": "",
?? ??? ??? ??? ?"expirationTime": 9223372036854776000,
?? ??? ??? ??? ?"ruleDefnId": 529,
?? ??? ??? ??? ?"targetPath": "",
?? ??? ??? ??? ?"targetValueExps": ""
?? ??? ??? ?}],
?? ??? ??? ?"effectiveTime": -9223372036854776000,
?? ??? ??? ?"expirationTime": 9223372036854776000,
?? ??? ??? ?"id": 529
?? ??? ?},
?? ??? ?"comTransRuleDefnId": 529,
?? ??? ?"effectiveTime": -9223372036854776000,
?? ??? ?"expirationTime": 9223372036854776000,
?? ??? ?"id": 1240,
?? ??? ?"nodeType": "common_transfer_rule",
?? ??? ?"pressId": 361,
?? ??? ?"stdBillOper": "",
?? ??? ?"stdBillType": ""
?? ?}],
?? ?"id": 361,
?? ?"pressColId": 0,
?? ?"pressToNormalFunctionBean": "",
?? ?"runInStyles": 2,
?? ?"taskId": 0
}?

新建一个类:CurrentRecognised,该插件有快捷键,Mac是option + s 即可弹出下面框,但是如果你本身工具已经存在该快捷键,那么可以该快捷键会失效,这种情况下,要通过在该类中,右键,在弹出的对话框中选择Generate,选择点击后会弹出GET、SET等,我们选择GsonFormat,如下图

?

?Format

将我们提前准备好的JSON数据,复制到框中,在对话框的右上角,还可以进行格式化

?Setting

?在右下角有个Setting按钮,点开后,弹出如下对话框

默认情况下Convert Library 选项是Other ,生成的对象是get set形式,我们可以选择其他选项,例如Lombok,那么会将生成的对象带有Lombok的形式,代码看起来比较整洁,其他选项大家自己体验吧,功能还是有一些的。点击Ok后

我们能修改字段类型、映射后的字段名称,例如我们将 第一个字段id 修改成newId,点击OK后,生成的代码如下


@NoArgsConstructor
@Data
public class CurrentRecognised {


    /**
     * acIdttbPressFilterConfEntities : []
     * acIdttbPressNodeConfEntityList : [{"acComTransRuleDefnEntity":{"acComTransRuleDetailEntityList":[{"detailSort":1,"effectiveTime":"-9223372036854776000","exeConditionExps":"","expirationTime":"9223372036854776000","ruleDefnId":529,"targetPath":""},{"detailSort":2,"effectiveTime":"-9223372036854776000","exeConditionExps":"","expirationTime":"9223372036854776000","ruleDefnId":529,"targetPath":"","targetValueExps":""}],"effectiveTime":"-9223372036854776000","expirationTime":"9223372036854776000","id":529},"comTransRuleDefnId":529,"effectiveTime":"-9223372036854776000","expirationTime":"9223372036854776000","id":1240,"nodeType":"common_transfer_rule","pressId":361,"stdBillOper":"","stdBillType":""}]
     * id : 361
     * pressColId : 0
     * pressToNormalFunctionBean : 
     * runInStyles : 2
     * taskId : 0
     */

    private int newId;
    private int pressColId;
    private String pressToNormalFunctionBean;
    private int runInStyles;
    private int taskId;
    private List<?> acIdttbPressFilterConfEntities;
    private List<AcIdttbPressNodeConfEntityListBean> acIdttbPressNodeConfEntityList;

    @NoArgsConstructor
    @Data
    public static class AcIdttbPressNodeConfEntityListBean {
        /**
         * acComTransRuleDefnEntity : {"acComTransRuleDetailEntityList":[{"detailSort":1,"effectiveTime":"-9223372036854776000","exeConditionExps":"","expirationTime":"9223372036854776000","ruleDefnId":529,"targetPath":"","targetValueExps":""},{"detailSort":2,"effectiveTime":"-9223372036854776000","exeConditionExps":"","expirationTime":"9223372036854776000","ruleDefnId":529,"targetPath":"","targetValueExps":""}],"effectiveTime":"-9223372036854776000","expirationTime":"9223372036854776000","id":529}
         * comTransRuleDefnId : 529
         * effectiveTime : -9223372036854776000
         * expirationTime : 9223372036854776000
         * id : 1240
         * nodeType : common_transfer_rule
         * pressId : 361
         * stdBillOper : 
         * stdBillType : 
         */

        private AcComTransRuleDefnEntityBean acComTransRuleDefnEntity;
        private int comTransRuleDefnId;
        private String effectiveTime;
        private String expirationTime;
        private int id;
        private String nodeType;
        private int pressId;
        private String stdBillOper;
        private String stdBillType;

        @NoArgsConstructor
        @Data
        public static class AcComTransRuleDefnEntityBean {
            /**
             * acComTransRuleDetailEntityList : [{"detailSort":1,"effectiveTime":"-9223372036854776000","exeConditionExps":"","expirationTime":"9223372036854776000","ruleDefnId":529,"targetPath":""},{"detailSort":2,"effectiveTime":"-9223372036854776000","exeConditionExps":"","expirationTime":"9223372036854776000","ruleDefnId":529,"targetPath":"","targetValueExps":""}]
             * effectiveTime : -9223372036854776000
             * expirationTime : 9223372036854776000
             * id : 529
             */

            private String effectiveTime;
            private String expirationTime;
            private int id;
            private List<AcComTransRuleDetailEntityListBean> acComTransRuleDetailEntityList;

            @NoArgsConstructor
            @Data
            public static class AcComTransRuleDetailEntityListBean {
                /**
                 * detailSort : 1
                 * effectiveTime : -9223372036854776000
                 * exeConditionExps : 
                 * expirationTime : 9223372036854776000
                 * ruleDefnId : 529
                 * targetPath : 
                 * targetValueExps : 
                 */

                private int detailSort;
                private String effectiveTime;
                private String exeConditionExps;
                private String expirationTime;
                private int ruleDefnId;
                private String targetPath;
                private String targetValueExps;
            }
        }
    }
}

?可以看到确实将id替换成了newId,这个插件在一些特定场合还是比较实用的,大家觉得如何呢

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 15:56:38  更:2022-05-01 15:57:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 15:12:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码