在开发中,经常会有这样的场景,给一个 JSON 例子,然后定义成对象类,来和前端进行联调测试,如果 Json 很长,会浪费很多时间在编写对象类上。
接下来推荐一款 IDEA 的插件:GsonFormatPlus(基于 GsonFormat 做的二次开发)。
 一、插件安装
一、插件安装
IDEA的插件安装非常简单,对于很多插件来说,只要你知道插件的名字就可以在IDEA里面直接安装。
File->Settings->Plugins—>查找所需插件—>Install 或者
File->Settings->Plugins—>Install plug from disk —>选择下载好的插件安装
一般插件安装之后重启IDEA即可生效。
 二、使用GsonFormatPlus插件生成代码
二、使用GsonFormatPlus插件生成代码
使用下面Json 来进行测试:
{
    "name": "马云",
    "gender": "male",
    "age": 18,
    "height": "170cm",
    "addr": {
        "province": "浙江",
        "city": "杭州",
        "code": "300000"
    },
    "hobby": [
        {
            "name": "人民币",
            "code": "1"
        },
        {
            "name": "美元",
            "code": "2"
        }
    ]
}在 IDEA 中依次点击 Code -> Generate -> GsonFormatPlus,如图所示:

也可以直接使用快捷键 Alt(Option)+S 来生成代码,使用界面如下所示:

在左侧输入 JSON,然后可以根据自己的需要在 Setting 中进行设置,如图所示:

比如是否使用 Lombok,是否使用注释,字段的修饰符选择等,大家可以自己去尝试下。
如图所示,点击 【OK】按钮进行代码生成。
 三、简单测试
三、简单测试
在生成代码的基础上,编写如下代码进行简单测试,代码如下所示:
@lombok.NoArgsConstructor
@lombok.Data
public class App
{
    private String name;
    private String gender;
    private Integer age;
    private String height;
    private AddrDTO addr;
    private List hobby;
    public static void main(String[] args )
    {
        System.out.println( "Hello World!" );
        App app = new App();
        app.name = "马云";
        app.gender = "male";
        app.addr = new AddrDTO("浙江", "杭州", "001");
        app.hobby = new ArrayList();
        app.hobby.add(
                new HobbyDTO("人民币", "RMB")
        );
        app.hobby.add(
                new HobbyDTO("美元", "USD")
        );
        System.out.println(app);
    }
    @lombok.AllArgsConstructor
    @lombok.Data
    public static class AddrDTO {
        private String province;
        private String city;
        private String code;
    }
    @lombok.AllArgsConstructor
    @lombok.Data
    public static class HobbyDTO {
        private String name;
        private String code;
    }
}输出结果如下所示:
Hello World!
App(name=马云, gender=male, age=null, height=null, addr=App.AddrDTO(province=浙江, city=杭州, code=001), hobby=[App.HobbyDTO(name=人民币, code=RMB), App.HobbyDTO(name=美元, code=USD)])
 
 
