Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Lombok+;格森?_Java_Json_Gson_Rest Assured_Lombok - Fatal编程技术网

Java 如何使用Lombok+;格森?

Java 如何使用Lombok+;格森?,java,json,gson,rest-assured,lombok,Java,Json,Gson,Rest Assured,Lombok,说明: 我正在使用Lombok的@Builder注释“构建”一个JSON负载,然后gson将其转换为正确的JSON输出 但是如何通过builder()方法构建数组呢 代码: RoleType RoleType = RoleType.getEnumByUserRole("Marketing"); PropertyBean PropertyBean = ConfigFactory.create(PropertyBean.class); String d

说明: 我正在使用Lombok的@Builder注释“构建”一个JSON负载,然后
gson
将其转换为正确的JSON输出

但是如何通过
builder()
方法构建数组呢

代码:

        RoleType RoleType = RoleType.getEnumByUserRole("Marketing");
        PropertyBean PropertyBean = ConfigFactory.create(PropertyBean.class);
        String defaultStore = "null";

        //this is the object that's suppose to be an array.
        Group group = Group.builder()
                .groupId(RoleType.getGroupId())
                .changedById(PropertyBean.sssUser())
                .storeCode(defaultStore)
                .primary(false).build();

        String lastName = "QA User";
        int numOfDays = 1;
        String defaultLocale = "en";
        User newUser = User.builder()
                .firstName(RoleType.getAcronym())
                .lastName(lastName)
                .startDay(getCurrentYearMonthDate())
                .endDay(addDaysToYearMonthDate(numOfDays))
                .password(PropertyBean.tempPass())
                .rightHand(true)
                .operatorId("123456")
                .userStores(userGroup) //<--- the userStoes object should be an array.
                .locale(defaultLocale).build();

        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        String body = gson.toJson(newUser);

        System.out.println(body);


期望输出

{
  "firstName": "MKT_AUTO",
  "lastName": "QA User",
  "locale": "en",
  "rightHand": true,
  "startDay": "2020-02-03",
  "endDay": "2020-02-04",
  "operatorId": "81",
  "password": "Temp-Auto01",
  "global": false,
  "userStores": [{ //<---- Array
    "storeCode": "null",
    "groupId": 24,
    "changedById": "000000081",
    "primary": false
  }],
  "active": false,
  "lockedOutFlag": false
}
{
“名字”:“MKT_自动”,
“lastName”:“QA用户”,
“locale”:“en”,
“右手”:正确,
“开始日期”:“2020-02-03”,
“结束日”:“2020-02-04”,
“operatorId”:“81”,
“密码”:“Temp-Auto01”,
“全球”:错,

“userStores”:[{//省略列表类型的
builder
是一种方法。然后只使用
ArrayList()
方法就行了

例如:

        List<Group> userStores = new ArrayList<>();
        userStores.add(new Group("216", 1, "81", true));

        String lastName = "QA User";
        int numOfDays = 1;
        String defaultLocale = "en";
        User newUser = User.builder()
                .firstName(RoleType.getAcronym())
                .lastName(lastName)
                .startDay(getCurrentYearMonthDate())
                .endDay(addDaysToYearMonthDate(numOfDays))
                .password(PropertyBean.tempPass())
                .rightHand(true)
                .operatorId("123456")
                .userStores(userStores)
                .locale(defaultLocale).build();
        List<Group> userStores = new ArrayList<>();
        userStores.add(new Group("216", 1, "81", true));

        String lastName = "QA User";
        int numOfDays = 1;
        String defaultLocale = "en";
        User newUser = User.builder()
                .firstName(RoleType.getAcronym())
                .lastName(lastName)
                .startDay(getCurrentYearMonthDate())
                .endDay(addDaysToYearMonthDate(numOfDays))
                .password(PropertyBean.tempPass())
                .rightHand(true)
                .operatorId("123456")
                .userStores(userStores)
                .locale(defaultLocale).build();
{
  "firstName": "MKT_AUTO",
  "lastName": "QA User",
  "locale": "en",
  "rightHand": true,
  "startDay": "2020-02-03",
  "endDay": "2020-02-04",
  "operatorId": "123456",
  "password": "Temp-Auto01",
  "global": false,
  "userStores": [
    {
      "storeCode": "216",
      "groupId": 1,
      "changedById": "81",
      "primary": true
    }
  ],
  "active": false,
  "lockedOutFlag": false
}