Java 如何使用Lombok+;格森?
说明: 我正在使用Lombok的@Builder注释“构建”一个JSON负载,然后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
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
}