今天给大家介绍一款很实用的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@Datapublic 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@Datapublic 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@Datapublic 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,这个插件在一些特定场合还是比较实用的,大家觉得如何呢

IntelliJ IDEA开发工具插件GsonFormat插件安装使用相关推荐

  1. Idea开发工具集成Drools插件

    Idea开发工具集成Drools插件 在百度上搜索了很久,都没有找到能够清晰的在idea开发工具中安装Drools插件,今天知道实践了一下,分享如下: 第一步,打开idea,本人使用的是2021.3. ...

  2. IntelliJ IDEA开发工具安装教程(2022.2最新版)

    IntelliJ IDEA开发工具安装教程(2022.2最新版) 下载官网网址: https://www.jetbrains.com/idea/ 一.下载安装: 1, 打开官网下载IntelliJ I ...

  3. 【软件开发】Eclipse开发工具的介绍、安装及汉化

    Eclipse开发工具的介绍和安装 一.Eclipse的介绍 二.Eclipse的安装 1. 下载Eclipse 2. 运行Eclipse 3. 安装Eclipse的中文语言包 4. Eclipse的 ...

  4. 【Java语言基础】2.1 IntelliJ IDEA开发工具概述

    IntelliJ IDEA开发工具概述 1. 之前的开发工具 文本编辑工具:记事本.UltraEdit.EditPlus.TextPad.NotePad++.sublime- 存在的问题:编写代码时没 ...

  5. xilinx fpga 开发工具vivado 软件的安装,使用详细教程

    文章目录 xilinx fpga 开发工具vivado 软件的安装,使用详细教程 xilinx fpga 开发工具vivado 软件的安装,使用详细教程 点此下载vivado软件的安装说明文档 点此下 ...

  6. 【安卓学习之开发工具】VMware虚拟机安装ubuntu

    █ [安卓学习之开发工具]VMware虚拟机安装ubuntu █ 相关文章: [安卓学习之开发工具] Android Studio学习 1 - 入门篇 [安卓学习之开发工具] Android Stud ...

  7. IntelliJ IDEA开发工具安装Scala插件使用

    Scala的开发工具 1.IDEA介绍: IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境.IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代 ...

  8. Wex5 开发工具及相关插件安装

    一.Wex5简介 WeX5是跨端移动开发框架,将H5的标签封装成组件,实现可视化.组件化快速开发.实现一次开发,多端(iOS.安卓和微信)运行.前端采用H5 + CSS3 + JS标准,使用AMD规范 ...

  9. Android Studio插件Gsonformat的安装和使用

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

  10. Spring Boot 2.x 入门前的准备-IntelliJ IDEA 开发工具的安装与使用

    ntelliJ IDEA 开发工具的安装与使用 1 下载 IntelliJ IDEA 2 破解版本安装 2.1 window 下的破解 2018.3.1最新版破解 2.2 window 下的破解 20 ...

最新文章

  1. easyui前端实现多选框_前端:Element UI 多选框组用法笔记
  2. 在ABAP中将负号提前的方法
  3. RFID助力汽车零部件厂商识别冲压工具位置
  4. html文件 运行php文件路径问题,HTML_基础 HTML之目录问题(相对路径和绝对路径区别),相对路径-以引用文件之网页所 - phpStudy...
  5. OS / Linux / SIGCHLD 信号
  6. ad10怎么挖铺的铜_黄金怎么验真假,简单易行方法多。
  7. dotnet若干说明图片
  8. 如何在string.Format方法中输出大括号({})
  9. LeetCode 732. 我的日程安排表 III(差分思想)
  10. Java提高性能的50个优化,记得收藏
  11. 斑图的matlab程序,斑图生成
  12. WhereHows 数据发现和管理工具
  13. Studio 3T使用教程,本人详细介绍连接Mongodb过程
  14. java 加载类失败_java-动态类加载在运行时失败
  15. Windows 10安装Adobe XD出现白屏闪退问题
  16. Par.ici法语听写练习A1 -L13
  17. Word中的手动换行符
  18. d3带箭头和点击事件的力导向关系图
  19. [每日一题] 106. 二进制求和(字符串、数学)
  20. py实战项目进度甘特图绘制

热门文章

  1. 微信小程序模版合集下载,160个微信小程序源码.zip + 35个行业-微信小程序源码.zip
  2. html 做王者荣耀
  3. git 小乌龟 配置_git 小乌龟安装教程
  4. 安川机器人dx200编程手册_安川DX100DX200通信接口手册
  5. Linux下网络测试工具tcpping、tcptraceroute的使用
  6. xshell xftp 工具免费版本免费下载
  7. 详解离线安装Python库
  8. 【建站教程】如何快速搭建自己独立的个人博客?
  9. 【Swoole系列5.1】毫秒定时器
  10. PyCharm切换Python版本