有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从SpringREST控制器获取JSON

我试图从Spring Rest控制器中仅获取JSON格式的响应体,我的代码是:

@ResponseBody
    @RequestMapping(value = "/userDetails", method = RequestMethod.GET, produces = "application/json")

    public UserInfo getUserDetails(Principal principal){
        return users.get(principal.getName());
    }

我的结果是:

响应{正文:{id:001},状态:200,确定:真,状态文本:“确定”,标题:标题,…}

我怎么能只得到身体作为我的


共 (3) 个答案

  1. # 1 楼答案

    @RestController 公共类DemoController{

    @RequestMapping(method = RequestMethod.POST,
            value = "userdetails",
            consumes = "application/json",
            produces = "application/json")
    public UserInfo getUserDetails(@RequestBody Principal principal){
        return users.get(principal.getName());
    }
    

    }

    另一种方法

  2. # 2 楼答案

    从方法中删除@ResponseBy注释

  3. # 3 楼答案

    使用@RestController

    @RestController
    public class DemoController {
        @GetMapping("/userDetails")
        public UserInfo getUserDetails(Principal principal){
            return users.get(principal.getName());
        }
    
    }
    

    输出:

    {"id": 001}
    

    使用“@RestController”注释

    注意: Spring4.0引入了@RestController,这是控制器的一个专门版本,它是一个方便的注释,只不过添加了@Controller@ResponseBody注释。通过使用@RestController注释对控制器类进行注释,您不再需要向所有请求映射方法添加@ResponseBody。默认情况下,@ResponseBody注释处于活动状态。单击此处了解更多信息

    @RestController = @Controller + @ResponseBody