我正在尝试将以下对象转换为查询字符串,以便可以与GET请求一起使用。

Class A {
  String prop1;
  String prop2;
  Date date1;
  Date date2;
  ClassB objB;
}

Class B {
 String prop3;
 String prop4;
}

我们可以将第一个对象映射到Map,然后将映射转换为MultiValueMap并使用URIComponentsBuilder.fromHttpUrl(“httpL//example.com”)。queryParams(multiValueMap).build();

是否有更短,更好的方法将对象转换为查询字符串,以便与Spring Project中的GET请求一起用于Junit Test?

最佳答案

为什么要先转换为Map,然后转换为MultiValueMap,而不是直接构建它?

DateFormat dateFmt = new SimpleDateFormat("whatever date format you want");
URIComponentsBuilder.fromHttpUrl("httpL//example.com")
                    .queryParam("prop1", a.prop1)
                    .queryParam("prop2", a.prop2)
                    .queryParam("date1", dateFmt.format(a.date1))
                    .queryParam("date2", dateFmt.format(a.date2))
                    .queryParam("prop3", a.objB.prop3)
                    .queryParam("prop4", a.objB.prop4)
                    .build();

10-07 22:28