来自spring引导rest控制器的JSON响应重复
我试图使用SpringBoot1.5.9.RELEASE构建一个RESTAPI,但一直未能解决这个问题对api端点的post请求工作正常,但对于get请求,结果会重复。应用程序为get请求生成的响应为来自spring引导rest控制器的JSON响应重复,json,spring,spring-boot,jackson,Json,Spring,Spring Boot,Jackson,我试图使用SpringBoot1.5.9.RELEASE构建一个RESTAPI,但一直未能解决这个问题对api端点的post请求工作正常,但对于get请求,结果会重复。应用程序为get请求生成的响应为 {"data":["Administrator"]}{"data":["Administrator"]} 关联的请求映射类代码 @RequestMapping("/get") public ResponseEntity getAllRoles()throws Exception{
{"data":["Administrator"]}{"data":["Administrator"]}
关联的请求映射类代码
@RequestMapping("/get")
public ResponseEntity getAllRoles()throws Exception{
List<Roles> roles = rolesService.getRoles();
Set<String> roleNames = new HashSet<>();
for(Roles r : roles)
roleNames.add(r.getRoleName());
return new ResponseEntity(new Response(roleNames), HttpStatus.OK);
}
@RequestMapping(“/get”)
public ResponseEntity getAllRoles()引发异常{
List roles=rolesService.getRoles();
Set roleNames=new HashSet();
对于(角色r:角色)
添加(r.getRoleName());
返回新响应属性(新响应(角色名称),HttpStatus.OK);
}
响应类
public class Response<T> {
private T data;
public Response() {}
public Response(T data) {
this.data = data;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
公共类响应{
私有T数据;
公共响应(){}
公众回应(T数据){
这个数据=数据;
}
公共T getData(){
返回数据;
}
公共无效设置数据(T数据){
这个数据=数据;
}
}
关于如何解决这个问题有什么想法吗?提前感谢您创建了两次响应,请使用下面的
RequestMapping("/get")
public ResponseEntity<?> getAllRoles()throws Exception{
List<Roles> roles = rolesService.getRoles();
Set<String> roleNames = new HashSet<>();
for(Roles r : roles)
roleNames.add(r.getRoleName());
return new ResponseEntity<Object>(roleNames, HttpStatus.OK);
}
RequestMapping(“/get”)
public ResponseEntity getAllRoles()引发异常{
List roles=rolesService.getRoles();
Set roleNames=new HashSet();
对于(角色r:角色)
添加(r.getRoleName());
返回新的响应属性(roleNames,HttpStatus.OK);
}
您是否调试了代码并确保列表或哈希集不包含两个而不是一个对象?此外,您是否可以检查new ResponseEntity的值并发布该值?我意识到你不能在场景中填充两次,所以我认为你在最后做了一些非常奇怪的事情。为什么不显式地声明响应实体的类型?另外,不需要循环,只需尝试这个集合s=newhashset(service.getRoles());将哈希集转换为列表。因此,this.data=newarraylist(data);。让我知道这是否有效/get
对于端点来说是一个非常有趣的选择。只是为了好玩,把它改成别的东西,然后把@RequestMapping
改成@GetMapping