技术标签: 开发插件 IntelliJ-idea插件 工具 intellij-idea
今天给大家介绍一款很实用的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,如下图
在右下角有个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,这个插件在一些特定场合还是比较实用的,大家觉得如何呢
文章浏览阅读1.2w次,点赞2次,收藏16次。MMAL (Multimedia Abstraction Layer)0. 图像及视频操作RaspiCam Documentation1. 运行树莓派配置工具&amp;gt;&amp;gt; sudo raspi-config2. root 登陆 sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如hal..._luvcview 拍照
文章浏览阅读1.9k次。apache-tomcat部署问题总结来源:oschina 链接:https://my.oschina.net/u/3204029/blog/4314733@Tomcat启动项目警告: org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD…问题描述:org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记_找不到tld文件。考虑将jar添加到catalina_base/conf/catalina.properties文件中的
文章浏览阅读1k次。题目链接:[link]http://codeup.cn/problem.php?cid=100000611&pid=2link.题目二叉树的前序、中序、后序遍历的定义:前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树;中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树;后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。给定一..._二叉树给出前序和中序求后序
文章浏览阅读8.3w次,点赞55次,收藏138次。1)、安装Python3.4版本以上,因为这样会自带pip(包管理器的安装) 检查Python版本。 打开cmd,输入Python 现在我们可以知道Python的版本与位数,比如我的就是Python3.7,64位。 2)、去 https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 下载numpy, 这里要看下载的版本,37即版本3..._numpy怎么安装
文章浏览阅读1.2k次。打开c:\program files\python36\lib\site-packages\pip\compat__init__.py在第75行,把return s.decode(‘utf_8’)改为return s.decode(‘cp936’) 即可。转载自:https://blog.csdn.net/qq_35203425/article/details/80455243_另一个程序正在使用此文件,进程无法访问。: 'c:\\program files\\python311\\lib\
文章浏览阅读1.8k次。http://jsfiddle.net/8Tb6x/先是HTML 一个父div包含四个绝对定位的div 1 2 3 4 首先,一个静态的立方体.face:nth-child(1) { -webkit-transform: /*rotateY(0deg)*/ translateZ(2.5em /* half the side l_css3立体艺术字实现自转
文章浏览阅读2k次。Mahout0.9—Hadoop2.20—协同过滤算法 1.1. 基于物品的协同过滤推荐函数Mahout支持推荐函数,通过mahout –-help 查看:函数1:itemsimilarity: : Compute the item-item-similarities for item-based collaborative filtering itemsimilarity是计算物品相似度矩阵_协同过滤算法函数参数
文章浏览阅读1.1k次。在上一篇文章的预积分完成之后,VINS-MONO执行了这个函数,实现了视觉与IMU的初始化以及非线性优化的紧耦合,本篇先考虑初始化。1、首先搞清楚这个函数的输入image是个什么东西:estimator.processImage(image, img_msg->header);measurement是一组观测(一帧图像和若干IMU数据),数据类型是std::pair<std::vector<sensor_msgs::ImuConstPtr>, sensor_msgs::Poin_estimator::processimage
文章浏览阅读394次。之前遇到过一个问题,tableView的cell里面添加了一个label,但是上下滑动后,label上面的字全部重叠在了一起,这个是tableView的复用问题,在别的地方看了一个方法,觉得比较好就推荐给大家,代码如下:if(!cell) { //这里是你创建cell的代码,只要是iOS程序员应该都会写这里我就不在写了}else{ while ([annotationView._movable-view重叠
文章浏览阅读364次。首先是怎样获得系统时间?time_t timer; struct tm* tblock;timer = time((time_t*)NULL);tblock = localtime(&timer);printf("%s",asctime(tblock));localtime输出的是系统时间,当系统时间与硬件时间不同的时候应该怎么办?硬件时间是通过clock --sh_localtime函数和date命令结果不一样
文章浏览阅读253次。Python微信订餐小程序课程视频https://edu.csdn.net/course/detail/36074Python实战量化交易理财系统https://edu.csdn.net/course/detail/35475最近,有同学询问,如何使用 CSS 实现如下效果:看起来是个很有意思的动效。仔细思考一下,要想实现这类效果,其实用到的核心属性只有一个 – background-clip: text。有意思的 background-clip: textbackground-clip:_css3 background-clip制作文字动画
文章浏览阅读223次。计算两个字符串的相似度_mysql 字符串相似度